2013-04-22 70 views

回答

5

在HTML中有可以與給定的ID只有一個元素,分配相同的jQuery代碼到多個元素,您應該使用「class」屬性代替。

請參見:http://www.w3.org/TR/html401/struct/global.html#h-7.5.2

JS:

$('.button').click(function() { 
        window.location='aaa.html'; 
        }); 

HTML:

<div class="button">DIV 1</div> 
<div class="button">DIV 2</div> 
<div class="button">DIV 3</div> 
+0

問題解決!謝謝 ! – 2013-04-22 14:29:25

4

我試過,但它只能給人的第一按鈕鏈接,其餘的按鈕保持爲空

標識符在頁面中應該是唯一的,才能成爲有效的HTML。

當通過Id查詢時,jQuery將只返回匹配的第一個。

嘗試使用類來代替類,因爲類可以應用於元素組。

然後更新您選擇使用類指標.相反,與此類似:

$('.YourClassName').click(function() { 
    window.location='aaa.html'; 
}); 

有關jQuery的id選擇更多的細節來看看ID Selector (「#id」)文檔。

如前所述有作爲:

每個值

ID只能一次一個文檔內使用。如果多於 一個元素被分配了相同的ID,那麼使用該ID 的查詢將僅選擇DOM中的第一個匹配元素。但是,不應該依賴此行爲 ;具有多個使用相同ID的 元素的文檔無效。

+0

解決問題!謝謝 ! – 2013-04-22 14:29:45

0

具有多個相同的ID違反了HTML規範。你可以使用css類或其他選擇器。

1

你不應該給多個元素相同id,但如果你有,你可以使用:

$('[id="Button"]').click(function() { 
    window.location='aaa.html'; 
}); 

我會建議把id一切都開始「按鈕」,並加入到一個整數生成它們的時候,所以你必須在結構結尾:

​​

,所以你可以使用:

$('[id^="Button"]').click(function() { 
    window.location='aaa.html'; 
}); 

另一種選擇是設置一個特定的class代替,並具有以下結構:

<div class="button-class"</div> 
<div class="button-class"></div> 
<div class="button-class"></div> 

和使用這樣的:你可能想看看

$('.button-class').click(function() { 
    window.location='aaa.html'; 
}); 

東西是事件委託:http://api.jquery.com/on/#direct-and-delegated-events

參考文獻:

+0

當使用枚舉標識符時,對於'[id^=「Button」]'+1。非常有用的信息。 – Nope 2013-04-22 14:25:42

+0

解決問題!謝謝 ! – 2013-04-22 14:30:52

相關問題