2010-05-10 1 views
0

Я пытаюсь написать немного jquery, который находит все теги h2 внутри div (.content), а затем добавляет каждый в другой div (.intro).jquery найти h2 теги и добавить в div

До сих пор у меня есть это:

var h2 = $(".content").find("h2"); 
$(h2).each(function() { 
    $(this).append(".intro"); 
}); 

Но это не работает .. если кто-то может помочь мне, что было бы здорово :)

+0

все равно не ясно, если вы хотите клонировать или просто перейти! –

+1

Общей ошибкой является использование 'each()', когда нет необходимости. Когда у вас есть набор элементов (например, с результатами 'find()'), вы можете сразу вызвать функции на множестве без необходимости повторения элементов и действовать по каждому из них отдельно. – user113716

ответ

3

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

var h2 = $('h2', '.content'); 
$('.intro').append(h2); 

Нет необходимости использовать each(). В jQuery есть что-то, называемое «неявной итерацией», где вы можете действовать сразу во всем множестве. Таким образом, вы можете схватить их всех и добавить их одновременно.

Или вы хотите добавить их копию?

Если это так, попробуйте:

var h2 = $('h2', '.content'); 
$('.intro').append(h2.clone()); 

EDIT:

Или использовать одну версию строки:

$('.intro').append($('h2', '.content').clone());​ 

(конечно, удалить .clone() если вы дон Скопируйте их.)

2

Я думаю, что вы ищете appendTo метод.

var h2 = $(".content").find("h2"); 
$(h2).each(function() { 
    $(this).clone().appendTo($(".intro")); 
}); 

Edit: Просто заметил, что appendTo перемещал h2 тегов, так упаковывает, что нежелательно, добавил вызов clone().

2

Может использовать детей(), что-то вроде ...

$('.content').children('h2').each(function() { 
    $(this).appendTo($('.intro')); 
}); 

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

  • Нет связанных вопросов^_^