即使這些元素是不同類型的,也會給你帶來一些嚴重的問題.
假設有3個具有相同id的按鈕:
<button id="myid" data-mydata="this is button 1">button 1</button><button id="myid" data-mydata="this is button 2">button 2</button>
<button id="myid" data-mydata="this is button 3">button 3</button>
現在你設置了一些jQuery在下列情況下執行某項操作的代碼myid單擊按鈕:
$(document).ready(function (){
$("#myid").click(function ()
{
var buttonData = $(this).data("mydata");
// Call interesting function...
interestingFunction();
$('form').trigger('submit');
});});你會期望什么?單擊的每個按鈕都將使用jQuery執行Click事件處理程序設置。不幸的是這不會發生。只有第一按鈕調用單擊處理程序。另外兩個點擊時什么也不做。就好像他們根本不是紐扣一樣!
所以總是分配不同的IDs到HTML元素。這會讓你避免奇怪的事情。*)
<button id="button1" class="mybtn" data-mydata="this is button 1">button 1</button><button id="button2" class="mybtn" data-mydata="this is
button 2">button 2</button><button id="button3" class="mybtn" data-mydata="this is button 3">button 3</button>
現在,如果您想讓單擊事件處理程序在單擊任何按鈕時運行,如果您將jQuery代碼中的選擇器更改為使用CSS類以如下方式應用于它們:
$(document).ready(function (){
$(".mybtn").click(function ()
{
var buttonData = $(this).data("mydata");
// Call interesting function...
interstingFunction();
$('form').trigger('submit');
});});