我正在尝试创建一个通用的javascript函数,它可以改变事件的属性。
它的工作方式是
function fooFunction(sourceElement)
{
var newName = sourceElement+'Span';
var newElement = document.getElementById(newName);
//Important line
newElement.property = "enter properties here";
}我用这样的方式来命名它
<img src="foo.gif" id="foo" name="foo" onmouseover="fooFunction(this.id);"/>
<span id="fooSpan" name="fooSpan">some text here</span>因此从理论上讲,当悬停图像时,它应该更改我需要在fooSpan对象上更改的任何属性。它在Opera中工作,但在IE上它返回一个空对象。
有什么想法吗?
我的想法是,我将有多个图像,它们将自动触发相关文本范围(通常是css样式)上的属性更改。
发布于 2009-06-03 20:55:05
您确定您在IE中正确获取了ID吗?也许在IE中传入的ID为空(也许this.id不工作?)。
试着这样叫它:
<img src="foo.gif" id="foo" name="foo" onmouseover="fooFunction('foo');"/>看看这有没有帮助。我看不出getElementById()会失败的任何原因,所以我唯一能想到的就是这是一个ID问题。
发布于 2009-06-04 04:12:03
可能此行在IE中不起作用。"newElement.property“我不知道确切的原因。
你可以用这一行代替那一行
newElement.setAttribute(property,“在此处输入属性”);
同时,我也在努力找出错误背后的原因。
发布于 2009-06-04 04:25:56
我的建议是这样做。
function fooFunction(sourceElement,property,propertyValue) {
var newElement = document.getElementById(sourceElement);
newElement.setAttribute(property,propertyValue);
};您的HTML将如下所示:
<img src="foo.gif" id="foo" name="foo"
onmouseover="fooFunction('fooSpan','class','mouseover_span');"/>
<span id="fooSpan" name="fooSpan">some text here</span>https://stackoverflow.com/questions/946842
复制相似问题