Работа с деревом видимо
Уважаемые вообще не знаю как сформулировать вот сразу к делу
<div class="block1"> <div class="block2_1"> </div> <div class="block2_2"> <div class="block1"> <div class="block2_1"> </div> <div class="block2_2"> <div class="block1"> <div class="block2_1"> </div> <div class="block2_2"> </div> </div> </div> </div> </div> </div> $('.block1').each(function() { var data1 = $(this).find('.block2_1').html(), data2 = $(this).find('.block2_2').html(); $(this).replaceWith('<div></div>'); }); в чем проблема? во-первых find ищет все совпадения этого класса, а нужно только внутри каждого блока смысл в том чтобы была большая вложенность, но данные получались внутри каждого блока и replaceWith заменяет сразу главный блок и все я так понимаю нужно чтобы он изнутри делал чтобы replaceWith не заменял все?? вообщем знатоки подумайте скажите пожалуйста как сделать? |
Цитата:
Что ты хочешь в итоге с этим хтмэлем сделать? |
Цитата:
https://jquery-docs.ru/children/ |
Не совсем понял, но :(
<div class="block1"> <div class="block2_1"> </div> <div class="block2_2"> 2_2_1 <div class="block1"> <div class="block2_1"> </div> <div class="block2_2"> 2_2_2 <div class="block1"> <div class="block2_1"> </div> <div class="block2_2"> 2_2_3 </div> </div> </div> </div> </div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script> var reverseBlock = $(".block1").get().reverse(); $(reverseBlock).each(function() { var data2 = $(this).find('.block2_2').text(); alert(data2); $(this).replaceWith('<div></div>'); }); </script> |
Вот хороший пример
<div class="block1"> <div class="block2">sample text</div> <div class="block3"> <div class="block1"> <div class="block2">sample text</div> <div class="block3"> <div class="block1"> <div class="block2">sample text</div> <div class="block3"> <div class="block1"> <div class="block2">sample text</div> <div class="block3"> <div class="block1"> <div class="block2">sample text</div> <div class="block3"> </div> </div> </div> </div> </div> </div> </div> $('.block1').each(function() { var data1 = $(this).find('.block2').text(); alert(data1); }); как видно в примере он берет каждый block1 и выводит что содержится в block2 и самое интересное он берет по цепочки короче смысл в том как изолировать блок который он проверяет и чтобы find не брал все классы ну вы понимаете меня? тоесть он инфу в блоке .text берет вообще все проверьте через алерт потом когда цепочка блока block1 уменьшается инфы меньше короче как изолировать чтобы вот он проверел в своем block1 и нелез дальше? |
$('.block1 .block2').each(function() { var data1 = $(this).text(); alert(data1); }); |
Белый шум а если мне внутри данные с нескольких блоков нужно собрать, то для каждых писать each?
нельзя сделать что-то типа var data1 = .find и указать типа > я хз чтобы он не ел другие блоки? |
Через запятую можно перечислять селекторы, как и в css:
$('.block1 .block2, .block1 .block3, .block1 .block4').each(function() { var data1 = $(this).text(); alert(data1); }); |
я имею ввиду можно както указать find'у чтобы он не собирал все что найдет а только первый попавшийся в своем боксе
|
Цитата:
https://jquery-docs.ru/eq/ |
Часовой пояс GMT +3, время: 08:26. |