JQuery: выберите «это» дочерние элементы - PullRequest
1 голос
/ 04 ноября 2010

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

ЧтоДо сих пор я придумал, что это

 $('tr td').click(
     function (){
        alert($(this+':parent td:last-child a:first').attr('href'));
     }
 );

Я пробовал 100 различных подходов, либо я получаю ошибку / не определено, либо я получаю только результат последней / первой строки, в которой строкимежду ними не работает должным образом.

Вся помощь действительно приветствуется

Таблица выглядит следующим образом

http://www.jsfiddle.net/xK7Mg/1/

Ответы [ 5 ]

3 голосов
/ 04 ноября 2010

Я думаю, вы хотели это сделать:

$('tr td').click(function() {
   window.location.href = $(this).parent().find('td:last-child a:first').attr('href');
});
1 голос
/ 04 ноября 2010

Что вам нужно, это я думаю:

$('tr').click(function(){
    window.location = $(this).find('td:last a:first').attr('href');
});

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

1 голос
/ 04 ноября 2010

Используйте .siblings() в этом случае, хотя .parent().children() также работает, например:

$('tr td').click(function() {
  window.location.href = $(this).siblings('td:last').find('a').attr('href');
});

Сделайте еще один шаг вперед, не прикрепляйте click обработчик каждой ячейки, используйте .delegate(), чтобы прикрепить один для всей таблицы, например:

$('#tableID').delegate('td', 'click', function() {
  window.location.href = $(this).siblings('td:last').find('a').attr('href');
});

Вы можете попробовать это здесь .

0 голосов
/ 04 ноября 2010

http://jsfiddle.net/ppw8z/

 $('tr').click(function() {
    window.location = $(this).find('td>a').attr('href');    
 });
0 голосов
/ 04 ноября 2010
$('tr').click(
     function (){
        window.location = $(this).find("td:last a:first").attr('href');
     }
 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...