2016-01-20 6 views
-1

Я использую функцию hitTest (a, b); Я даю ему 2 объекта. Объекты соответствуют некоторым элементам div с идентификаторами на моей веб-странице.Как сравнить объекты, используя # знак в javascript

где функция называется:

if (hitTest($('#drawer'),$('#hit'+i))) 

{ 
    //do something... 

} 

Это само

function hitTest(a, b) { 
    if($(b) == $('#hit5') ){ 
     console.log("hit 5"); 
    } 
    else if($(b) == $('#hit4') ){ 
     console.log("hit 4"); 
    } 

    else if($(b) == $('#hit6') ){ 
     console.log("hit 6"); 
    } 

Проблема в том, что ни один из КРП статей не работает функция! Как сравнить 2 объекта или их типы?

ответ

1

Попробуйте следующий:

function hitTest(a, b) { 
    if($(b)[0] === $('#hit5')[0] ){ 
     console.log("hit 5"); 
    } 
    else if($(b)[0] === $('#hit4')[0] ){ 
     console.log("hit 4"); 
    } 

    else if($(b)[0] === $('#hit6')[0] ){ 
     console.log("hit 6"); 
    } 

JQuery объекты сами по себе всегда отдельные объекты, так что вы должны посмотреть на содержимое фактического массива DOM внутри каждого JQuery объекта.

Ссылка: https://stackoverflow.com/a/7475132/1029506

2

if($(b).is($('#hit5')) ){ 
 
     console.log("hit 5"); 
 
    } 
 

в JQuery есть .а метод, я думаю, что это поможет вам

+0

.is происходит от jquery? поэтому я должен иметь jquery, подключенный к моему коду, чтобы использовать «.is»? – ERJAN

+0

Да, вы можете использовать .is, потому что вы используете jquery plugin – saikumar

+0

Вы уже используете jquery в своем фрагменте кода, как он выглядит. –

1

вам действительно нужно сравнить элементы делать? Не могли бы вы просто сравнить селекторов?

if (hitTest('#drawer', '#hit'+i)) 

{ 
    //do something... 

} 



function hitTest(a, b) { 
    if(b === '#hit5') { 
     console.log("hit 5"); 
    } 
    else if(b === '#hit4') { 
     console.log("hit 4"); 
    } 
    else if(b === '#hit6') { 
     console.log("hit 6"); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^