2013-07-14 148 views
1

对chrome进行了简单的扩展。 将“querySelector”更改为“querySelectorAll”时,第二个函数不起作用。querySelectorAll不起作用,但querySelector做了

var ele2 = document.querySelectorAll(".view-count "); 
    window.onload = function(){ 
     func2(); 
    } 

function func2(){ 
    ele2.innerHTML = ele2.innerHTML.trim(); 
    ele2.innerHTML = ele2.innerHTML.slice(0, -14); 
    ele2.textContent = "$" + ele2.innerHTML.replace(/ /g,' '); 
    } 

解决方案:

for (x=0;x<ele2.length;x++){ele2[x].innerHTML = ele2[x].innerHTML.trim();} 
for (x=0;x<ele2.length;x++){ele2[x].innerHTML = ele2[x].innerHTML.slice(0, -14);} 
for (x=0;x<ele2.length;x++){ele2[x].textContent = "$" + ele2[x].innerHTML.replace(/&nbsp;/g,' ');} 

回答

2
querySelectorAll

返回节点的集合,而不是querySelector它返回单个节点。
要访问集合中的节点,您必须通过索引引用它。

ele2[0].innerHTML = ele2[0].innerHTML.trim(); 
+0

谢谢。但我如何选择所有节点?不只是0或1或4,但所有,querySelectorAll可以找到? – pi1yau1u

+0

@ pi1yau1u你将不得不循环他们。 'for(x = 0; x Musa

+0

是的,这是!太棒了。非常感谢您的参与! – pi1yau1u

0

querySelector返回基于参数值的第一个查询。 querySelectorAll以类似数组的结构返回列表。要获取列表中的单个元素,请使用index。 Exp,

ele2[0] // first iteration 
ele2[1] // second iteration 
相关问题