Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.05.2022, 16:14
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Скрыть часть комментариев.
Привет. Решил часть ответов на комменты скрыть. Как в вк, например. Сам код накидал, а вот как ссылку разместить в нужном месте,нужна помощь.
Вот так выглядит html
<div id="6" class="comment" data-parent="0" data-level="1">...</div>
<div id="7" class="comment" data-parent="6" data-level="2">...</div>
<div id="8" class="comment" " data-parent="6" data-level="2">...</div>
<div id="9" class="comment" " data-parent="6" data-level="2">...</div>

<div id="10" class="comment" data-parent="0" data-level="1">...</div>
<div id="11" class="comment" data-parent="10" data-level="2">...</div>
<div id="12" class="comment" data-parent="10" data-level="2">...</div>
<div id="13" class="comment" data-parent="10" data-level="2">...</div>


Например я хочу скрыть больше одного ответа. Значит ссылку нужно разместить после id=7 и id=11. Сама ссылка как то так наверное).

var elem = document.querySelectorAll(".comment");
    let tag_a = document.createElement('a');    
    tag_a.textContent = '--------Смотреть все---------';

    for (var i = 0, length = elem.length; i < length; i++) {
        let id = $(elem[i]).attr('id');
        let parent = $(elem[i]).attr('data-parent');

        tag_a.id = parent;
        if(//Вот это условие надо){
            elem[i].parentNode.insertBefore(tag_a, elem[i].nextSibling);
        }
    }


Тоесть ID ссылки будет значение data-parent
Ответить с цитированием
  #2 (permalink)  
Старый 26.05.2022, 16:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

ureech, лучше ты контент переделай сразу. Зачем формировать "как ненужно"... А потом "делать как нужно".
Ответить с цитированием
  #3 (permalink)  
Старый 26.05.2022, 16:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Например так...
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!--
<script src="https://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
-->
<style>
.box > div {
	display: none;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', _ => {
})
</script>
</head>
<body>
<div id="6" class="comment" data-parent="0" data-level="1">...</div>
<div class='box'>
	<a href='#'>Смотреть все</a>
	<div id="7" class="comment" data-parent="6" data-level="2">...</div>
	<div id="8" class="comment" " data-parent="6" data-level="2">...</div>
	<div id="9" class="comment" " data-parent="6" data-level="2">...</div>
</div>

<div id="10" class="comment" data-parent="0" data-level="1">...</div>
<div class='box'>
	<a href='#'>Смотреть все</a>
	<div id="11" class="comment" data-parent="10" data-level="2">...</div>
	<div id="12" class="comment" data-parent="10" data-level="2">...</div>
	<div id="13" class="comment" data-parent="10" data-level="2">...</div>
</div>

</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 26.05.2022, 17:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

ureech,
<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>

<body>
    <div id="6" class="comment" data-parent="0" data-level="1">6...</div>
    <div id="7" class="comment" data-parent="6" data-level="2">7...</div>
    <div id="8" class="comment" data-parent="6" data-level="2">8...</div>
    <div id="9" class="comment" data-parent="6" data-level="2">9...</div>
    <div id="10" class="comment" data-parent="0" data-level="1">10...</div>
    <div id="11" class="comment" data-parent="10" data-level="2">11...</div>
    <div id="12" class="comment" data-parent="10" data-level="2">12...</div>
    <div id="13" class="comment" data-parent="10" data-level="2">13...</div>
    <script>
        var elem = document.querySelectorAll(".comment[data-level='2']");
        let tag_a = document.createElement('a');
        tag_a.textContent = '--------Смотреть все---------';
        let obj = {};
        elem.forEach(el => {
            let {
                parent
            } = el.dataset;
            obj[parent] ??= 0;
            if (obj[parent] == 1) el.before(tag_a.cloneNode(true));
            obj[parent]++;
        })
    </script>
</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 26.05.2022, 17:32
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Сообщение от ksa
ureech, лучше ты контент переделай сразу. Зачем формировать "как ненужно"... А потом "делать как нужно"
Дело в том, что это системный файл и нежелательно менять что то. Хотя можно и подумать)
Ответить с цитированием
  #6 (permalink)  
Старый 26.05.2022, 17:34
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

рони,
Спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скрыть дубли? Globus Общие вопросы Javascript 5 03.08.2018 00:04
Как скрыть часть номера телефона? LADYX Элементы интерфейса 24 16.07.2018 12:23
Как скрыть часть текста, при клике на ссылку показать zahar_92 jQuery 14 16.05.2016 13:23
скрыть из исходного кода часть javascript кода. javasc Javascript под браузер 10 12.03.2014 09:32
скрипт разворачивающегося блока для комментариев — 10$ wlad2 Работа 2 13.02.2014 19:01