2015-08-28 3 views
0

Я хочу предупредить b, если элемент $("[id$=linkbuttonabsd]") и предупреждение a в противном случае.Как сравнить 2 элемента DOM?

код JavaScript:

$("body").find("a").click(function (e) { 
    var herf = $("body").find("a"); 
    var link = $("[id$=linkbuttonabsd]"); 
    var isb = false; 
    for (var i = 0; i < herf.length; i++) { 
     if (herf[i] == link) { 
      isb = true; 
     } 
    } 
    if (isb) { 
     alert("b"); 
    } else { 
     alert("a"); 
    } 
}); 

Но я не могу достичь этого herf[i] == link. Как это сделать?

+1

Можете ли вы уточнить, что вы хотите добиться? – Satpal

+0

Потому что обе они разные. – Jai

ответ

3

$.fn.is() может использоваться.

Проверить ток соответствует множеству элементов против селектора объекта элемента или JQuery и return true, если по крайней мере один из этих элементов соответствуют заданным параметрам.

if(herf.eq(i).is(link)){ 
    //Condition is ture 
} 

Кроме того, чтобы получить элемент с указанным индексом использования .eq() вместо []

Вам не нужно перебрать объектов. код может быть уменьшен до

$("body a").click(function(e) { 
    var herf = $("body a"); 
    var link = $("[id$=linkbuttonabsd]"); 
    var isb = herf.is(link); 

    if (isb) { 
     alert("b"); 
    } else { 
     alert("a"); 
    }  
}); 
+1

спасибо, что это хорошо работает – beginerdeveloper

0

Попробуйте использовать $.is, чтобы соответствовать элемент. Вот пример:

if ($(herf[i]).is("#linkbuttonabsd")) { 
    isb = true; 
} 
+1

'# linkbuttonabsd' не совпадает с' '[id $ = linkbuttonabsd]" '. – Regent

+0

'[id $ = linkbuttonabsd]' возвращает набор элементов, и поэтому сравнение не может быть выполнено одним элементом таким образом. Я все равно решил решить его проблему. –

+0

[Эта скрипка] (http://jsfiddle.net/72x81buo/) - это то, о чем я говорю. – Regent

0

На этой линии:

herf[i] == link 

Вы сравниваете элемент с объектом JQuery, который всегда будет возвращать ложь, которая, как == оператор работы. Далее будет работать, как ожидалось:

href[i] == link[0] 

Однако, кажется, что вы хотите проверить, если элемент, имеющий [id$=linkbuttonabsd] также связь внутри тела. Для этого ваш код можно было бы упростить до:

var isb = $("body a[id$=linkbuttonabsd]").length > 0;