为了账号安全,请及时绑定邮箱和手机立即绑定

js怎么用nextElementSibling查找下下个节点

js怎么用nextElementSibling查找下下个节点

慕村225694 2018-11-07 13:15:33
<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的下下个节点并修改它的值。2.只用原生js不用jquery。3.目的是为了在一些特殊情况下不能获取到input的ID以及class的情况下,用隐藏的input作为定位坐标向下查找指定input。
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

然后你的html不能换行,换行了会每个input后面有个text类型的nextSibling,空白字符也相当于一个文本节点

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;

}


查看完整回答
反对 回复 2018-12-13
  • 1 回答
  • 0 关注
  • 850 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号