鍍金池/ 問答/HTML/ 獲取表單元素的兄弟結(jié)點

獲取表單元素的兄弟結(jié)點

想獲取<input>的上個結(jié)點<span>的內(nèi)容,可是得到的是undefined

<form name="liuyan" class="liuyan" autocomplete="on" onsubmit="return check()">
    <span>姓名:</span>
    <input type="text" name="user_name" placeholder="此處填寫姓名"/>
    <br /><br />
    <span>聯(lián)系電話:</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;
}

求指教,謝謝。

回答
編輯回答
墨染殤

last_node打印出來,你會發(fā)現(xiàn)并不是<span>標簽,而是一個TextNode。
即標簽<input><span>之間會有另一個元素,類型為TextNode,在操作的時候一定要注意。

再舉兩例吧。

這時獲取到的是 '111?      ' 。
<span>姓名:</span>111
<input type="text" name="user_name" placeholder="此處填寫姓名"/>
這時獲取到的就是`<span>`標簽。
<span>姓名:</span><input type="text" name="user_name" placeholder="此處填寫姓名"/>
2018年7月4日 15:09