我想結合getElementsByTagName和getElementsByClassName來縮小搜索範圍並計算結果節點,但第二個搜索總是導致長度爲0,我不知道爲什麼。結合getElementsByTagName和getElementsByClassName
<!DOCTYPE html>
<html>
\t <head></head>
\t <body>
\t \t <p>Stuff</p>
\t \t <p class="content">Stuff2</p>
\t \t <p>Stuff</p>
\t \t <p class="content">Stuff2</p>
\t \t <script type="text/javascript">
\t \t \t pElements = document.getElementsByTagName("p");
\t \t \t console.log(pElements);
\t \t \t for(i = 0; i < pElements.length; i++) {
\t \t \t \t console.log(pElements[i].getElementsByClassName("content").length);
\t \t \t }
\t \t \t //console.log(document.querySelectorAll('p.content').length);
\t \t </script>
\t </body>
</html>
我知道我可以使用querySelectorAll這就像我註釋掉線,但我想明白爲什麼第一個解決方案是行不通的,而我能做些什麼要解決這個問題。
謝謝!
所以它不是真的有可能在兩個(ByTagName&ByClassName)如果你結合尋找具有正確標記和類的元素? – Dan 2015-03-25 11:36:51
也增加了一種更向後兼容的方式。 – juunas 2015-03-25 11:56:12