HTML中的重複ID問題

2021-06-20 19:14:55 字數 829 閱讀 5778

我們通常認為在同乙個文件中元素的id是唯一的,至少從邏輯上它應該是唯一的。傳統的網頁確實沒有id重複的必要,但現代web中還有單頁面的架構,模組是動態載入的,他們全都在同乙個文件中,因此id重複就很難避免。所以有時候,我們要視id為非唯一的。

通過id獲取元素最常用的方法就是getelementbyid,但這個方法顯然是單數的,它永遠都只能獲取到乙個元素,如果頁面存在多個id相同的元素,它只能獲取到第乙個。使用jquery的選擇器也會遇上同樣的問題,因為在處理針對id的選擇器時候jquery同樣使用getelementbyid。如果需要獲取id為某個值的所有元素,應該使用queryselectorall,這個方法很明確的返回乙個集合,所以它可以包含多個同id的元素。但是ie7-不支援它,所以如果存在多個id相同的元素,選擇起來就會像根據class選擇一樣麻煩。當然,jquery也可以簡化這些操作,雖然上面說直接針對id選擇時只能獲取到乙個,只要給選擇器中加入任何其它東西就可以讓jquery不使用getelementbyid。

下面是一段測試**:

id="a

">

id="x"

>ax

>

>

id="b"

>

id="x"

>bx

>

>

>

var i,j,tests=[

'$("#a #x")','$("#b #x")','$("#x")','$("*#x")',

'document.queryselectorall("#x")'

],output;

for(i=0;itrycatch(e);

關於Html中的id的作用

我的小夥伴發現,在網頁中你給物件取的id實際上九可以代表物件.你給他id就類似於你給這個物件加了乙個引用,你就可以通過這個引用去呼叫他的屬性和方法.如下 在瀏覽器相容性方面,我測試了一下,都支援,ie7以上的,ie7以下沒有試過.也就是說,你其實根本不用document.getelementbyid...

html中name與id的區別

可以說幾乎每個做過web開發的人都問過,到底元素的id和name有什麼區別阿?為什麼有了id還要有name呢?而同樣我們也可以得到最classical的答案 id就像是乙個人的身份證號碼,而name就像是他的名字,id顯然是唯一的,而name是可以重複的。name原來是為了標識之用,但是現在根據規範...

html中name和id的區別

可以說幾乎每個做過web開發的人都問過,到底元素的id和name有什麼區別阿?為什麼有了id還要有name呢?而同樣我們也可以得到最classical的答案 id就像是乙個人的身份證號碼,而name就像是他的名字,id顯然是唯一的,而name是可以重複的。上週我也遇到了id和name的問題,在頁面裡...