1 回答

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
childNodes將包括元素的所有子節(jié)點(diǎn),包括文本節(jié)點(diǎn)。(例如,您inp.childNodes[0]實(shí)際上指的是第一個(gè)<br>.
您絕對(duì)不想在 childNodes 上使用數(shù)組索引來標(biāo)識(shí)表單輸入;您的代碼將非常脆弱,并且基本上只要有人編輯 HTML 就會(huì)中斷(只需在節(jié)點(diǎn)之間添加一些文本就足以更改索引號(hào)。)
您可以通過僅選擇您想要的特定標(biāo)簽類型的元素來稍微改進(jìn)這一點(diǎn):
var inputs = document.querySelectorAll('#form-content input'); // select all inputs inside #form-content
inputs[0].value="first name"
console.log(inputs[0].value)
<div>
<h1>DOM</h1>
<div id="form-content" class="content"
><br><label for="first-name">First Name</label>
<br><input type="text" id="first-name"/>
<label for="last-name"><br>Last Name</label>
<br><input type="text" id="last-name"/>
<label for="email"><br>Email</label>
<br><input type="text" id="email" />
</div>
<div id="main-content" class="content">
<p class="render">First Name : Alex</p>
<p class="render" id="lastName">Last Name: Bank</p>
<p class="render"> Email : alexbank@example.com</p>
<p class="render"> Country : Pakistan </p>
<p class="render"> contact : +92 300 1234567</p>
</div>
</div>
...但我也不會(huì)這樣做:雖然它比使用 childNodes 更容易破壞,但它仍然取決于表單元素的順序,永遠(yuǎn)不會(huì)改變。
我強(qiáng)烈建議為每個(gè)特定的表單字段使用特定的標(biāo)識(shí)符(無論是使用 ID 還是數(shù)據(jù)屬性),而不是在代碼中構(gòu)建對(duì)特定布局的依賴性。
添加回答
舉報(bào)