2012-07-17 68 views
3

如果您拿走了任何給定的HTML元素(或更具體的複選框)的ID屬性(IE:假設從未設置過),是否有一種方法可以確定我有兩個引用相同的元素?確定兩個HTML元素是否不同,如果沒有ID

基本上我試圖讓下面的代碼工作,但不認爲我可以做到沒有id屬性集。

複選框被宣佈爲(所以我不能使用id屬性)

<input type="checkbox" class="RowSelector" /> 

這裏是我想創建

$(function() { 
    $(".RowSelector").click(function (e) { 
     var current = this; 
     $(".RowSelector").each(function (index, value) { 
      if (current != value) { //This doesnt work but is there a way I can make it? 
       $(value).prop("checked", false); 
      } 
     }); 
    }); 
}); 

所以使用是有可能的方法用JavaScript來確定我是否有兩個對同一個HTML元素的引用?

+0

什麼不起作用?無論如何,似乎你正在試圖複製單選按鈕的功能。 – Inkbug 2012-07-17 05:03:06

+0

結果總是錯誤的,因此所需的複選框從不被取消選擇。這是在一個網格內,所以沒有我不復制單選按鈕的功能。 – 2012-07-17 05:05:30

+0

你試過了嗎(當前!=這個)? 'this'在'.each(function(index,value)'後可能已經改變。只是在黑暗中拍攝! – 2012-07-17 05:07:26

回答

3

你可以讓jQuery的做的工作你在少了很多代碼:

$(function() { 
    $(".RowSelector").click(function (e) { 
     $(".RowSelector").not(this).prop("checked", false); 
    }); 
}); 

或稍微更有效:

$(function() { 
    var rows = $(".RowSelector").click(function (e) { 
     rows.not(this).prop("checked", false); 
    }); 
}); 

如果你有興趣在回答你的其他問題(現在在上面的代碼中,通過jQuery爲您處理),您可以直接比較兩個DOM引用。當且僅當它們引用相同的DOM節點時,它們將爲==

相關問題