6 回答

TA貢獻(xiàn)66條經(jīng)驗(yàn) 獲得超26個(gè)贊
你那個(gè)ChildNodes應(yīng)改為:childNodes(小寫c)就可以執(zhí)行了。

TA貢獻(xiàn)11條經(jīng)驗(yàn) 獲得超10個(gè)贊
<!DOCTYPE?html> <html> <head> <meta?charset="UTF-8"> <title>Document</title> </head> <body> <select?name?=?"edu"?id?=?"edu"> <option?value?=?"博士">博士~~~</option> <option?value?=?"本科"?id="benke">本科~~~</option> <option?value?=?"大專">大專~~~</option> <option?value?=?"幼兒園">幼兒園~~~</option> </select> <script> var?gra?=?document.getElementById("edu"); var?A?=?gra.childNodes; alert(A[1].firstChild.nodeValue); </script> </body> </html>
從js逐句來分析。
獲取id為“edu”的元素節(jié)點(diǎn)。
獲取該元素下的子節(jié)點(diǎn)數(shù)組(nodelist)。嗯C寫錯(cuò)了,下次注意。(小駝峰法命名函數(shù)跟變量就是第一個(gè)單詞首字母小寫,之后單詞首字母大寫。大駝峰就是所有單詞首字母都大寫,推薦對(duì)象命名使用大駝峰,這樣一眼就能區(qū)分對(duì)象跟函數(shù)和變量的區(qū)別了,函數(shù)也是一種變量)
彈出警告窗A(0)是id“edu”元素的第一個(gè)子節(jié)點(diǎn)。首先你的<select>與<option>之間有空格,因此這里有一個(gè)空白節(jié)點(diǎn),IE下沒有,其他瀏覽器都不會(huì)忽略這個(gè)空白節(jié)點(diǎn),這點(diǎn)是第二。
你想取得第一個(gè)子節(jié)點(diǎn),實(shí)際上有一個(gè)空白節(jié)點(diǎn),應(yīng)該是第二個(gè)節(jié)點(diǎn)value="博士"的這個(gè)<option>的文本,因此你使用了value,應(yīng)該使用nodeValue才對(duì)。還有一個(gè)問題在于文本節(jié)點(diǎn)本身是元素節(jié)點(diǎn)的子節(jié)點(diǎn)。也就是A[1].firstchild.nodeValue
最后你需要繼續(xù)加油,哈哈。

TA貢獻(xiàn)361條經(jīng)驗(yàn) 獲得超191個(gè)贊
首先是childNodes大小寫問題呢,然后childNodes指所有子元素(包括文本元素),當(dāng)你代碼這么寫:
<select?name?=?"edu"?id?=?"edu"> ??<option?value?=?"博士">博士~~~</option> ??<option?value?=?"本科"?id="benke">本科~~~</option> ??//這里select和option之間,option和option之間有空白,這段空白就是文本節(jié)點(diǎn);
因此childNodes[0]值得是中間那段空白,自然value為undefined;
可以用children(只獲取元素節(jié)點(diǎn))來代替childNodes[0]

TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超3個(gè)贊
- -別去寫這種糟糕的代碼,沒任何意義,明白一些問題,屬性名永遠(yuǎn)是小寫開頭,所以必然不可能出現(xiàn)ChildNodes這種東西。看你這寫的代碼,新手的實(shí)在有些過分了。

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
首先應(yīng)該是 var A=gra.childNodes;
其次A返回的是一個(gè)nodeList,里面有9個(gè)節(jié)點(diǎn),而第一個(gè)是文本節(jié)點(diǎn)(<TextNode?textContent="\n\n">)
彈出的肯定是undefined。所以可以根據(jù)nodetype來選擇你想要的
添加回答
舉報(bào)