<script type="text/javascript">
function getElements(){
var x=document.getElementById("dialogArea");
x.nextElementSibling.nextElementSibling.value="30";//該方法錯誤
}
</script>
<input type="hidden" name="dinwei" class="dinwei" id="dialogArea" value="" />
<input name="myInput" type="text" size="20" value="How1 many input elements?"/>
<input name="myInput" type="text" size="20" value="How2 many input elements?"/>
<input name="myInput" type="text" size="20" value="How3 many input elements?"/>
<input type="button" onclick="getElements()"value="button" />
1.用nextElementSibling查找id為dialogArea的下下個節(jié)點(diǎn)并修改它的值。
2.只用原生js不用jquery。
3.目的是為了在一些特殊情況下不能獲取到input的ID以及class的情況下,用隱藏的input作為定位坐標(biāo)向下查找指定input。
歡迎選擇我的課程,讓我們一起見證您的進(jìn)步~~
script 放在 dom 前面能獲取到 dom 么...
題目看錯了,不過看起來好像沒什么問題,能不能貼一下報錯的截圖。再者說,這樣的連續(xù)判斷最好加一個存在判斷,否則很容易出現(xiàn)問題。類似于:
if (dom.next) {
dom.next.next
}
var test1 = document.getElementById('dialogArea');
var test2= test.nextElementSibling.nextElementSibling;
然后你的html不能換行,換行了會每個input后面有個text類型的nextSibling,空白字符也相當(dāng)于一個文本節(jié)點(diǎn)
var x=document.getElementById("dialogArea");
x.nextElementSibling.nextElementSibling.value = "30";
<input type="hidden" name="dinwei" class="dinwei" id="dialogArea" value="" /><input name="myInput" type="text" size="20" value="How1 many input elements?"/><input name="myInput" type="text" size="20" value="How2 many input elements?"/><input name="myInput" type="text" size="20" value="How3 many input elements?"/><input type="button" onclick="getElements()"value="button" />
最好用jquery,非要用js也可以這樣寫。
var x=document.getElementById("dialogArea");
next(next(x)).value="30";
function next(e){
e = e.nextSibling;
if(e.nodeType == 3){ // 3是指text類型
e = e.nextSibling;
}
return e;
}