Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как скрыть/раскрыть текстовый блок не правя html (https://javascript.ru/forum/jquery/61725-kak-skryt-raskryt-tekstovyjj-blok-ne-pravya-html.html)

ligisayan 05.03.2016 10:49

Как скрыть/раскрыть текстовый блок не правя html
 
Приветствую! Есть текстовый блок за тегом <strong>, который я хочу скрывать/раскрывать по нажатию на "..." без правки html, но не получается выбрать именно требуемый кусок текста
<div class="parallax_one_grid_column_1"><p>Какой-то текст<strong>...</strong>продолжение текста									</p></div>

$(".parallax_one_grid_column_1").find("strong:contains(...)").click(function() {
    $(".parallax_one_grid_col_3.parallax_one_grid_column_1  p").toggle();
});

рони 05.03.2016 11:38

ligisayan,
текст нельзя спрятать, его можно только уничтожить

ligisayan 05.03.2016 11:50

Цитата:

Сообщение от рони (Сообщение 409991)
ligisayan,
текст нельзя спрятать, его можно только уничтожить

рони, т.е. при переключении он будет уничтожаться? А, если, например присвоить участку текста тег с классом и его скрывать/отображать или через буфер как-то это момент обойти?

рони 05.03.2016 11:51

ligisayan,
если текст будет в теге, то без проблем

ligisayan 05.03.2016 12:02

Цитата:

Сообщение от рони (Сообщение 409995)
ligisayan,
если текст будет в теге, то без проблем

ок, рони а как до него добраться и обернуть?
через
:has(strong:contains(...))
выхожу на клик - да?

рони 05.03.2016 12:07

ligisayan,
а что на сервере нельзя текст после strong сразу обернуть в нужный тег?

ligisayan 05.03.2016 12:23

Цитата:

Сообщение от рони (Сообщение 409998)
ligisayan,
а что на сервере нельзя текст после strong сразу обернуть в нужный тег?

нет, блоки темы не пропускают теги, кроме <strong>, поэтому в вопросе без правки html и интересует как это сделать с помощью скрипта. если бы была такая возможность - вопроса бы не возникло изначально.

рони 05.03.2016 12:23

Открывашка 254 для показа/скрытия текста/тегов
 
ligisayan,
для любителей погорячее ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    strong{
      cursor: pointer;
    }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
$(function() {
    $(".parallax_one_grid_column_1 p").on("click", function(f) {
        var b = f.target,
            c = !1;
        $(b).is("strong:contains('...')") && $(this).contents().each(function(d, a) {
            if (c)
                if (3 == a.nodeType) {
                    var e = $(b).data("text" + d);
                    $(b).data("text" + d, a.data);
                    a.data = e ? e : ""
                } else $(a).toggle();
            a == b && (c = !0)
        })
    })
    .find("strong:contains('...')").trigger("click");
});
  </script>
</head>

<body>
 <div class="parallax_one_grid_column_1"><p>Какой-то текст<strong>...</strong>продолжение текста                                 </p></div>
 <div class="parallax_one_grid_column_1"><p>Какой-то текст<strong>...</strong>продолжение текста    <i>тест</i>   продолжение текста                          </p></div>
</body>

</html>

рони 05.03.2016 12:26

ligisayan,
скрипт скрывает/показывает всё что находитьсся после strong, если изначально нужен текст полностью, убрать строку 30.

ligisayan 05.03.2016 12:51

рони, супер! без вашей помощи не пришел бы к такому циклу, экспериментировал с помощью substr, но все что-то где-то не то получалось


Часовой пояс GMT +3, время: 06:18.