JavaScript返回的对象属性未定义

狮子心

这些是我使用的一些相关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的较早版本,因此我在fix.js文件中添加了此“ getNextSibling”函数,如另一个堆栈溢出线程所建议的那样:

// 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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章