我遇到了奇怪的故障。看起來,如果我在一個錨元素上同時擁有一個ID和NAME屬性,那麼document.getElementById會失敗。如果我刪除了NAME,它就會起作用。我在Firefox 3.5(最新版)中看到了這一點,但尚未檢查其他瀏覽器。如果錨也具有名稱屬性,則Javascript - getElementById失敗
這是一個錯誤還是故意的?
我遇到了奇怪的故障。看起來,如果我在一個錨元素上同時擁有一個ID和NAME屬性,那麼document.getElementById會失敗。如果我刪除了NAME,它就會起作用。我在Firefox 3.5(最新版)中看到了這一點,但尚未檢查其他瀏覽器。如果錨也具有名稱屬性,則Javascript - getElementById失敗
這是一個錯誤還是故意的?
我從來沒有聽說過這樣的錯誤,所以我試圖重現它並失敗。這表明你誤診了這個問題,或者至少沒有提供足夠的信息。
我使用Firefox 3.5和以下代碼進行了測試。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<title>Test of getElementById with named anchors</title>
<h1>Test of getElementById with named anchors</h1>
<h2><a name="one" id="one">First section</a></h2>
<p>The quick brown fox</p>
<h2><a name="two" id="second">Second section</a></h2>
<p>The quick brown fox</p>
<script type="text/javascript">
if (document.getElementById('one')) {
document.write("<p>First section found - id matches name<\/p>");
}
if (document.getElementById('second')) {
document.write("<p>Second section found - id does not match name<\/p>");
}
</script>
相同,我無法在我的3.5.2 firefox上重現它。 :\ – codingbear 2009-08-17 19:49:03
感謝您的測試人員。我不知道目前是什麼造成的,但如果我在未來有一段時間,我會調查。我想知道它是否以我的代碼,或者我無法完全描述的奇怪邊緣情況。 – Geuis 2009-08-17 20:05:58
無法重現。幾乎可以肯定你在同一時間做的其他改變。 – 2009-08-17 19:42:22
也許在被移除的名稱標籤和另一個名稱標籤之間存在衝突? – Zed 2009-08-17 19:43:19
我唯一見過類似的東西是在IE中 - 它不區分名稱/ ID屬性,所以getElementById可以返回一些事情,如果發生碰撞,您並不總是期待這樣的事情。 – Pat 2009-08-17 19:51:02