2012-06-19 3 views
1

У меня есть HTML как это:Jquery: получить атрибут ребенка

<div> 
    <a href="">sometext<img src="images/001.jpg" /></a> 
    <a href="">sometext<img src="images/002.jpg" /></a> 
    ... 
    <a href="">sometext<img src="images/nnn.jpg" /></a> 
</div> 

Все, что я хочу сделать 'HREF' atrributes равно 'Src' атрибут детского 'IMG' с помощью JQuery. Это моя неудачная попытка (без JS-ошибки, но без результата):

$('div a').attr('href', $(this).children('img').attr('src')); 

Как я могу получить «Src» атрибут детского «IMG» для использования как атр() второй аргумент для родителей «а»?

ответ

4
$('div a').attr('href', function() { 
    return $(this).find('img').attr('src'); 
}); 

DEMO

+0

+1 намного лучше, чем моя 'каждая' попытка :-) – ManseUK

+0

@ManseUK благодарит сэра – thecodeparadox

+0

@thecodeparadox спасибо. Если я знаю, что img всегда только один уровень потомка, могу ли я использовать метод children() (лучше или быстрее?). – McSimKammerer

1

Попробуйте это:

$('div a').each(function(){ 
    $(this).attr('href', $(this).find('img').attr('src')); 
}) 
0

Вы могли цикл каждый img и установить атрибут родительского href так:

$('div a img').each(function() { 
    $(this).parent().attr('href',$(this).attr('src')); 
}); 

Working example here

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