2013-08-24 2 views
1

У меня есть таблица с идентификатором 'myTable'. Теперь есть текстовое поле, в котором я записываю имя элемента, чтобы узнать, существует ли он в ячейке myTable или нет. Для этого я написал следующий код -Изменение значения переменной внутри функции JQuery .filter()

var retval=0; 
var search = $("#searchitem").val().trim(); 
$("table#myTable tr td").filter(function() { 
    if($(this).text() == search){retval=1;alert('Same item found');} 
else{retval=0;} 
}); 

Проблема заключается в том, что, когда он находит один и тот же элемент в ячейке таблицы она показывает alertbox. Но значение моей переменной retval никогда не меняется. Он всегда показывает 0. Как я могу это решить?

+1

не могли бы вы поместить свой html-код или создать скрипку? –

+0

Где вам нужно посмотреть retval? Является ли это там? – Sergio

+3

Возможно, на одной итерации, сделав retval = 1, и в следующий сброс обратно на 0, поставить предупреждение в блоке else, а затем отладить. – Farhan

ответ

0

пожалуйста, попробуйте return false как этого

var retval=0; 
var search = $("#searchitem").val().trim(); 
$("table#myTable tr td").filter(function() { 
    if($(this).text() == search){ 
     retval=1; 
     alert('Same item found'); 
     return false; 
    }else{ 
     retval=0; 
    } 
}); 
0

изменение значение переменного только если найдено, потому что вы присвоить переменную в самом начале.

var retval=0; 
var search = $("#searchitem").val().trim(); 
$("table#myTable tr td").filter(function() { 
    if($(this).text() == search){ 
     retval=1; 
     alert('Same item found'); 
    } 
}); 
0

Я думаю, что вы пытаетесь достичь может быть сделано с помощью: содержит() селектор, как это:

var search = $("#searchitem").val().trim(); 
var retval = $("table#myTable tr td:contains('"+search+"'") ? 1 : 0; 

Я не проверял, но я почти уверен, что это работает , Это гораздо более чистый подход и, безусловно, более читаемый.

JQuery: содержит() документы:http://api.jquery.com/contains-selector/

0

Попробуйте этот код

var search = $("#searchitem").val().trim(); 
var filteredData = $("table#myTable tr td").filter(function(element, index) 
{ 
    return $(element).text() == search; 
}); 

теперь этот код возврата массива из TD элементов, которые удовлетворяют условию.

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