簡體   English   中英

getElementsByClassName找不到ul

[英]getElementsByClassName not finding uls

我無法使我的代碼在Chrome中正常工作,但是當我將代碼粘貼到JSFIDDLE中時,它可以正常工作。 我正在嘗試使用getElementsByClassName獲取文檔中的所有ul標簽,然后在其中一個ul中獲取所有lis。 當我使用getElementsByClassName(“ ul”)時,它在Chrome中找不到任何內容,但是,如果我在uls getElementsByClassName(“ ul”)找到所有div之前刪除了兩個div之一,那么div似乎就是在破壞JS 。

我無法在JSFIDDLE中重現該問題,因為代碼在那里可以正常工作,但它在這里: http : //jsfiddle.net/zTP9H/

var sElements = document.getElementsByClassName("HeaderWrapWide");
var catOne = document.getElementsByTagName("ul");
alert("number of ul: " + catOne.length);

var liTags = catOne[3].getElementsByTagName("li");
alert("number of li: " + liTags.length);

謝謝

亞歷克斯

確定將html添加到頁面之后,您是否正在運行此javascript? jsfiddle可能以與您的網頁不同的方式呈現html / script,因此這就是它在此處起作用的原因。 如果您的JavaScript位於HTML的頭部,則很可能會出現這種情況-嘗試在文檔就緒功能http://api.jquery.com/ready/上使用jquery或將JS移至頁面底部

我看不到您的代碼有什么問題

我想您的head標簽中包含上述JS代碼。 所以用即時函數調用包裝它

(function () {
   //ToDos
})();

的jsfiddle

如果要執行<head></head>
就像擁有它一樣,然后嘗試將代碼包裝在
如果您不想使用jQuery,則可以使用類似的功能。
另外,這在IE中不起作用,因此請檢查caniuse.com/#search=DOMContentLoaded

document.addEventListener('DOMContentLoaded', function() {
    your code here.
  })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM