這些都是和我一起工作的一些相關的HTML元素:的Javascript返回undefined對象屬性
<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,class name等,都被分配了一個值),但是當我嘗試使用返回對象的屬性時,他們都沒有定義。
任何人都知道爲什麼會發生這種情況?
您必須顯示值未定義的部分。您所展示的代碼中沒有任何內容可以解釋它。 – JJJ
嗨Juhana,謝謝你的回覆。在getNextSibling函數中,屬性已經是未定義的。 – lionHeart
可能有些東西與動態選擇器搞砸了。由於您已經有了對元素的引用,因此不必再次搜索它。只需使用'$(element).next();'。 –