2013-08-03 4 views
2
<table class="table1"> 
    <tbody>   
     <tr class="tablerow1"> 
      <td valign="top"> 
       <strong> 
       <a href="http://www.wineweb.com/scripts/wineryPg.cfm/11094/Aan-de-Doorns-Co%2Dop/" target="_top">Aan de Doorns Co-op </a> </strong> </td></tr> 
    </tbody> 
</table> 

Это образец HTML существует несколько строк с несколькими ячейками в actuall HTML, который, как я делаюКак получить атрибут href с помощью jquery?

$('table.table1').each(function(k, elem) { 
        $(this).find('tr').each(function(j, elem){ 
         $(this).find('td').each(function(i,elem){ 
          console.log($(this).find('strong a').attr('href')); 
         }) 
        }) 
       }); 

, но я не могу получить HREF с помощью этого метода.

+0

собирался попросить html, но он был просто поднят. Я предлагаю включить это в один запрос. – kikuchiyo

+1

, похоже, работает http://jsfiddle.net/wCAWT/ – Sachin

+0

Ваш код отлично работает, как на Waterfox. . '$ ('Table.table1') каждый (функция() {console.log ($ (это) .find ('TR> TD> сильный> а') Attr ('HREF'));.});' –

ответ

0

Вы можете упростить код драматически:

$('table.table1 tr td a').each(function(idx, elem) { 
    console.log($(this).attr('href')); 
}); 
+0

Черт, вы можете покончить с параметрами, поскольку они не используются ... –

+0

Я знаю, я знаю. Я бы хотел, чтобы напомнили об этих параметрах, как часто я использую их позже;). – nirazul

2
$('.table1 strong a').each(function() { 
    console.log(this.href); 
}); 
+1

'$ (this) .attr ('href')' -> 'this.href' – mishik

+0

'.table1 strong a', на всякий случай. – Meryovi

4

Вы можете использовать метод map и избежать вложенных $.each заявления.

var hrefs = $('table.table1 tr td a').map(function() { 
     return this.href; 
    }).get(); 

    console.log(hrefs.join(',')) 

Check Fiddle

+0

Что вы используете '.get();' for? – nirazul

+0

Карта возвращает массив, заключенный внутри оболочки jQuery. Чтобы преобразовать это в обычный массив, мы используем 'get().' –

+0

Я попробовал это на вашей скрипке. Кажется, он имеет тот же результат. – nirazul

1

Используйте метод находка (более эффективно).

$('.table1').find('a').each(function() { 
    console.log($(this).attr('href')); 
} 
0

вы можете добавить класс к тегу, как это:

<a class="link" href="your_url" target="_top">Aan de Doorns Co-op </a> 

затем использовать класс в вашем Jquery фрагменте кода, как это:

console.log($(this).find('.link').attr('href')); 

я создал скрипку для этого. Надеюсь, это поможет.

fiddle here

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