获取表单元素的兄弟结点

想获取<input>的上个结点<span>的内容,可是得到的是undefined


<form name="liuyan" class="liuyan" autocomplete="on" onsubmit="return check()">

    <span>姓名:</span>

    <input type="text" name="user_name" placeholder="此处填写姓名"/>

    <br /><br />

    <span>联系电话:</span>

    <input type="text" name="user_phone" placeholder="此处填写电话"/>

</form>

JavaScript:


function check(){

    var form_list = document.liuyan.elements;

    for (var i=0;i<form_list.length;i++) {

        if(form_list[i].value==""){

            var last_node = form_list[i].previousSibling;

            alert(last_node.innerHTML+"不能为空");

               form_list[i].focus();

               return false;

        }      

    }

    return true;

}

求指教,谢谢。


白衣染霜花
浏览 396回答 1
1回答

aluckdog

将last_node打印出来,你会发现并不是<span>标签,而是一个TextNode。即标签<input>和<span>之间会有另一个元素,类型为TextNode,在操作的时候一定要注意。再举两例吧。这时获取到的是 '111↵&nbsp; &nbsp; &nbsp; ' 。<span>姓名:</span>111<input type="text" name="user_name" placeholder="此处填写姓名"/>这时获取到的就是`<span>`标签。<span>姓名:</span><input type="text" name="user_name" placeholder="此处填写姓名"/>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript