Jquery заменяет текст одним тегом

Итак, как вы видите на картинке, в теге li есть текст. Текст генерируется администратором панели тем WordPress. И я пытаюсь заменить часть текста в том же теге. Итак, я хочу иметь только: Powierzchnia w m²: 93,5.

Jquery заменяет текст одним тегом

Я сделал скрипт jquery:

$( document ).ready(function() {
    let str = document.getElementById("class-20").innerHTML;
    let first = str.split(" ")[0];
    first = first.substr(8);

    //let foundin3 = str.indexOf(":");
    let foundin4 = $('*:contains(":")');

    $( str ).insertAfter( foundin4 );       
    //foundin4.after(first)
    //foundin4.appendChild(first);
});

Но это не дает ожидаемых результатов. Итак, первый вопрос: правильно ли указывать в качестве аргументов для переменных .insertAfter (7 строк фактического кода), как я, вместо тегов / классов html?

Прямо сейчас, после запуска этого в консоли инструментов разработчика, у меня есть:

Jquery заменяет текст одним тегом

Во-вторых, возможно, вы видите потенциальную синтаксическую ошибку, которая вызывает ошибку.

Ошибка связана с тем, что вы используете str в качестве селектора. Что неверно.

Pavan Andhukuri 05.10.2018 18:47

хорошо, вы видите решение этой проблемы, используя .insertAfter,

vbv 05.10.2018 18:51

У меня есть идея использовать .replaceWith вместо

vbv 05.10.2018 18:51
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
3
29
2

Ответы 2

Я бы попробовал сначала использовать queryselector, а затем изменить текст. Это было бы примерно так: var changeIt = document.querySelector ('li # class-20'); $ (changeIt) .innerHtml («поместите сюда свой текст»);

Этот лучше: document.querySelector ("li # class-20"). InnerHTML = "Powierzchnia w m²: 93.5";

Analise Burtet 05.10.2018 18:52

Это решение применимо только в том случае, если вы каждый раз знаете, что такое текстовое значение. И вся проблема в том, чтобы поменять местами две части текста, которые генерирует админ панели. Итак, правильный подход - решить эту проблему в более общем виде. Не меняя текст, а меняя местами части String. Ваш ответ статический, и в этом случае необходим динамический.

vbv 05.10.2018 19:44

Я поигрался с содержимым этой строки, что также привело меня к правильному решению:

let str = document.getElementById("class-20").innerHTML;
let first = str.split(" ")[0];
first = first.substr(8);
let second = str.split(" ")[1];

let third = second + first;
$("#class-20").replaceWith(third);

Другие вопросы по теме