亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery對象相等

jQuery對象相等

白衣非少年 2019-07-10 16:39:10
jQuery對象相等如何確定兩個jQuery對象是否相等?我希望能夠為特定的jQuery對象搜索數組。$.inArray(jqobj, my_array);//-1     alert($("#deviceTypeRoot") == $("#deviceTypeRoot"));//False alert($("#deviceTypeRoot") === $("#deviceTypeRoot"));//False
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

從jQuery 1.6開始,您可以使用.is..下面是一年多前的答案.。

var a = $('#foo');var b = a;if (a.is(b)) {
    // the same object!}

如果您想知道兩個變量是否實際上是同一個對象,例如:

var a = $('#foo');var b = a;

.然后你可以檢查他們唯一的身份證每次創建新的jQuery對象時,都會得到一個id。

if ($.data(a) == $.data(b)) {
    // the same object!}

盡管如此,也可以通過一個簡單的a === b,上面的內容至少可以告訴下一個開發人員您要測試的是什么。

無論如何,這可能不是你想要的。如果要檢查兩個不同的jQuery對象是否包含相同的元素集,則可以使用以下命令:

$.fn.equals = function(compareTo) {
  if (!compareTo || this.length != compareTo.length) {
    return false;
  }
  for (var i = 0; i < this.length; ++i) {
    if (this[i] !== compareTo[i]) {
      return false;
    }
  }
  return true;};

來源

var a = $('p');var b = $('p');if (a.equals(b)) {
    // same set}


查看完整回答
反對 回復 2019-07-10
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

如果您仍然不知道,可以通過以下方法返回原始對象:

alert($("#deviceTypeRoot")[0] == $("#deviceTypeRoot")[0]); //Truealert($("#deviceTypeRoot")[0] === $("#deviceTypeRoot")[0]);//True

因為$("#deviceTypeRoot")還返回選擇器選擇的對象數組。


查看完整回答
反對 回復 2019-07-10
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

這個$.fn.equals(...)解決方案可能是最干凈和最優雅的。

我試過像這樣快速而骯臟的東西:

JSON.stringify(a) == JSON.stringify(b)

它可能很昂貴,但舒服的是它是隱式遞歸的,而優雅的解決方案則不是。

只是我的兩分錢。


查看完整回答
反對 回復 2019-07-10
  • 3 回答
  • 0 關注
  • 586 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號