JQuery выбрать значение внутри окрестности TD - PullRequest
0 голосов
/ 08 июня 2011

Я хочу получить значение внутри диапазона с идентификатором 'TargetSpan', когда пользователь нажимает на Ввод с идентификатором 'test'
Я пробовал этот код, но он возвращает ноль.

$('.PrintReport').click(function (e) {
            alert($(this).parent().find('td:eq(2)').html());

        });

<tr>
<td>
</td>
<td>
</td>
<td>
<span id="TargetSpan" class="Price">0</span>
</td>
<td>
</td>
<td>
<input id=test type="image"  class="PrintReport" >
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
<span id="TargetSpan2" class="Price">0</span>
</td>
<td>
</td>
<td>
<input id=test2 type="image"  class="PrintReport" >
</td>
</tr>

Ответы [ 4 ]

1 голос
/ 08 июня 2011

.parent() вернет родительский тд;попробуйте parent().parent() или .closest("tr")

1 голос
/ 08 июня 2011

Я думаю, это то, что вы ищете, и, конечно, это решение относительно вашей разметки HTML и может не сработать, если вы измените свою разметку.

$('.PrintReport').click(function() {
  alert($(this).parent().prev().prev().find('.Price').html());
});

это еще одно решение, ноВы должны дать каждому TargetSpan и Test идентификаторам с суффиксом числа, таким как TargetSpan1, TargetSpan2, test1, test2

$('.PrintReport').click(function() {
  var id = this.id.replace('test', '');
  alert($(this).closest('tr').find('TargetSpan' + id).html());
});
0 голосов
/ 08 июня 2011

Если вы продолжите использовать id соглашения в вашем примере, это будет работать ВСЕГДА, независимо от порядка td.

$('.PrintReport').click(function (e) {
    alert($('#TargetSpan' + $(this).attr('id').replace(/\D/g,'')).html());
});
0 голосов
/ 08 июня 2011

Почему бы вам просто не выбрать его по идентификатору?

$('#TargetSpan').html()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...