Я хочу заменить текст в этом селекторе .list-text> p текстом из этот селектор .other-text> p , а здесь HTML:

<div class="list-text">
    <p>Text 1</p>
    <p>Text 2</p>
    <p>Text 3</p>
</div>

<div class="other-text">
    <p class="new-text">new text 1</p>
    <p class="new-text">new text 2</p>
    <p class="new-text">new text 3</p>
</div>

Становится

<div class="list-text">
    <p>new text 1</p>
    <p>new text 2</p>
    <p>new text 3</p>
</div>

Я попытался написать js, как показано ниже, но не повезло:

(function($){
    $('.list-text p').each(function (i) {
        var $this_text = $(this).text();
        $('.other-text p').text($this_text);
    });
})(jQuery);

Я сделал что-то не так?

-3
Tommy Pradana 10 Дек 2014 в 16:10

2 ответа

Лучший ответ

Вы можете перебирать теги p и использовать текущий индекс для получения текста из требуемого элемента:

$('.list-text p').each(function(i){
  $(this).text($('.other-text p').eq(i).text());
});

Рабочая демонстрация

4
Milind Anantwar 10 Дек 2014 в 13:12

Метод text () jq принимает функцию, вместо этого вы можете использовать:

$('.list-text p').text(function (i) {
    return $('.other-text p').eq(i).text();
});

-DEMO-

1
A. Wolff 10 Дек 2014 в 13:16