2014-09-23 3 views
0

мне нужно равняться два значения, но это не работает ..jquery. как равные .text() .val()

var rowID = $("#@idSelectObjectGuid").val(); 

$($(".ls-grid-body tr").children("[email protected]")).each(function() { 

    alert($(this).text() + " == " + rowID); 

    if ($(this).text() == rowID) { 

     $(".ls-grid-body tr").removeClass("lst-state-selected"); 
     $(this).addClass("lst-state-selected"); 

    } 
}); 

оповещения Результат:

df5ebd84-14a1-4e57-9f38-32d4e84e1503 - 41 == df5ebd84-14a1-4e57-9f38-32d4e84e1503 - 36 

Почему первая длина составляет 41 и почему они не равны ...

Как это сделать?

+0

- 41 ваша длина ?? Из вашего кода кажется, что rowid – Tushar

+0

@TusharGupta является частью: '$ (this) .text()' * – andlrc

ответ

1

попробовать это: использовать .trim(), как там может быть пробел перед/после текста

var rowID = $("#@idSelectObjectGuid").val().trim(); 

$($(".ls-grid-body tr").children("[email protected]")).each(function() { 

    alert($(this).text() + " == " + rowID); 

    if ($(this).text().trim() == rowID) { 

     $(".ls-grid-body tr").removeClass("lst-state-selected"); 
     $(this).addClass("lst-state-selected"); 

    } 
}); 
+0

Спасибо, .trim() это help :) – Elena

+0

рад помочь вам :) –

0

Это та вещь, которая filter хороша для:

$(".ls-grid-body tr").children("[email protected]").filter(function() { 
    return $.trim($(this).text()) == rowID; 
}).addClass("lst-state-selected"); 

Примечания:

  • string.trim() не имеет t доступно во всех браузерах, поэтому используйте $.trim() вместо
  • У вас, похоже, избыточная оболочка $().
  • У вас, кажется, есть несоответствие между элементами, которые вы removeClass и addClass to (tr vs tds).