gpt4 book ai didi

Javascript 返回 undefined object 属性

转载 作者:可可西里 更新时间:2023-11-01 14:45:20 25 4
gpt4 key购买 nike

这些是我使用的一些相关 HTML 元素:

                <TD id=Cell.0.0>
<DIV></DIV>
<IMG id=_Q0_C0_mrSingleImg src="radio.gif">
<INPUT type="checkbox" name=_QGender_C class=mrSingle id=_Q0_C0>
<LABEL for=_Q0_C0>
<SPAN class=mrSingleText >
some text
</SPAN>
</LABEL>
</TD>

在我的主 JS 文件中,我首先将此 onClick 方法分配给 img 元素:

function onImageClickSingle(event) {

// catch clicked img element
event = event || window.event;
var img = event.target || event.srcElement; // IE fix
if (img.nodeType == 3) img = img.parentNode; // firefix bug fix

var inputSibling = getNextSibling(img);

// some more code that involves working with inputSibling attributes...
}

如您所见,在上面的函数中,我调用“getNextSibling”来获取图像兄弟,即输入元素。
由于代码必须支持旧版本的 IE,我将这个“getNextSibling”函数添加到我的 fix.js 文件中,正如另一个堆栈溢出线程中所推荐的:

// IE 8 and less do not support nextSibling or previousSibling javascript properties 
function getNextSibling(element) {
var sibling = $('#' + element.id + '').next();
return sibling;
}

我遇到的问题是,在调试代码时,我可以看到 inputSibling 变量确实包含“getNextSibling”返回的请求的输入兄弟元素(id、checked、类名等,都被赋值),但是当我尝试使用返回对象的任一属性,它们都是未定义的。

有人知道为什么会发生这种情况吗?

最佳答案

你的函数返回 jQuery 对象

function getNextSibling(element) {
var sibling = $('#' + element.id + '').next();
return sibling;
}

因此您将能够使用 attr() 访问属性

inputSibling.attr('id')

或者如果您想继续使用 JS 访问方式,您需要

inputSibling.get(0).id

关于Javascript 返回 undefined object 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31230148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com