Jquery find/ Содержит и заменяет значение ячейки таблицы

Я хочу проверить все строки первого столбца таблицы, если текст существует, и если это так, я хочу перезаписать значение во второй ячейке той же строки. Я очень старался и не мог добраться до этого. Я использую jQuery 1.7.1.

<table id="tbl">
 <tr>
   <td>sakthi</td>
   <td>1</td>    
 </tr>
 <tr>
    <td>pushparaj</td>
    <td>2</td>
 </tr>
</table>


$('#tbl >tr').each(function() {
  if($(this).find('td:contains'+sakthi+''))
    { 
      var oldVal = $(this).find('td:eq(1)').text();//find value from first td
      $(this).find('td:eq(1)').text(+oldVal + +5);//replace the same value
    }

     $('#tbluom >tbody').append('<tr><td>' + UOMCaption + '</td><td>' + UOMQty + '</td></tr>');
 });

1 ответ

Решение

Ты можешь использовать filter

$("#tbl tr td:first-child").filter(function() {
    return $(this).text().indexOf("sakthi") > -1;
}).next("td").text(function() {
    var currentText = $(this).text();
    console.log("Current Text: " + currentText); 

    return currentText + " changed";
});

.text() может принять функцию обратного вызова. Таким образом, внутри этого обратного вызова вы можете получить текущее значение, изменить его, а затем вернуть то, что хотите, чтобы ваше новое значение было.

Демо: http://jsfiddle.net/Z7jmz/1/

Другие вопросы по тегам