任何人都可以解釋我爲什麼這個代碼產生不同的結果:JS assing結果變量的變化它的價值
var nav \t \t = document.getElementById('nav').childNodes,
\t navItem = [],
\t i=0,
\t navLenght = nav.length,
\t navItemLenght = navItem.length,
\t navItemWidth = 100/navItemLenght;
for (i = 0; i<navLenght; i++) {
\t if (hasClass(nav[i], 'level0')) {
\t \t navItem.push(nav[i]);
\t }
}
function hasClass(element, className) {
return element.className && new RegExp("(^|\\s)" + className + "(\\s|$)").test(element.className);
}
for (i = 0; i<navLenght;i++) {
\t //navItem[i].style.with = 100/navItem.length;
}
console.log(navItemLenght); // 0
console.log(navItem.length); //6
<div id='nav'>
<li class="level0">...</li>
<li class="level0">...</li>
<li class="level0">...</li>
<li class="level0">...</li>
<li class="level0">...</li>
<li class="level0">...</li>
</div>
當我assing結果它的變化的變量,爲什麼?
我更新代碼,或許這樣更清晰
**注:**我包裝了代碼並添加了HTML以便代碼運行。這不是原始代碼的一部分。 @oootramas,如果有關於編輯的任何錯誤,請回復它 – Rajesh
你將如何獲得第二次colsole.log調用6?更詳細地解釋。 –
我想你的意思是'navItemLenght = nav.length'不是? –