#javascript #html #dom
#javascript #HTML #dom
Вопрос:
Я хочу обернуть текст из html в промежуток, поэтому он должен быть таким
<p>Test yes</p>
в
<p><span>Test</span></p>
с javascript
dom. Кто-нибудь может мне помочь с этим?
Ответ №1:
Попробуйте это.
document.getElementsByTagName("p")[0].innerHTML = '<span>' document.getElementsByTagName("p")[0].innerHTML '</span>';
<p>Test</p>
Ответ №2:
document.querySelectorAll("p").forEach(element => {
element.innerHTML = '<span>' element.innerHTML '</span>';
});
<p>Test1</p>
<p>Test2</p>
<p>Test3</p>
<p>Test4</p>
Ответ №3:
Не просто текст, на случай, если у вас есть и другие html-объекты, внутри элемента, подобного p
тегу here, вот что вы можете сделать :
var parent = document.querySelector("p");
parent.innerHTML = "<span>" parent.innerHTML "</span>"
Ответ №4:
Посмотрите этот фрагмент:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<p id="test_para">Test yes</p>
<script type="text/javascript">
var p = document.getElementById('test_para')
var span = document.createElement('span');
var node = document.createTextNode(p.innerHTML);
span.appendChild(node);
p.innerHTML = '';
p.appendChild(span);
</script>
</body>
</html>
Во фрагменте мы выполнили следующие действия:
- Сначала мы присвоили id
test_para
нашему абзацу. С помощью этого идентификатора мы находим его и сохраняем в переменной p . - Во-вторых, мы создаем элемент span, используя
createElement()
метод. - В-третьих, мы создаем текстовый узел с помощью
createTextNode()
метода и сохраняем текст нашего абзаца внутри него. - Далее мы устанавливаем добавить этот узел в элемент span, который мы только что создали с помощью
appendChild()
метода. - Наконец, мы делаем наш абзац пустым и добавляем к нему вновь созданный элемент span с помощью
appendChild()
метода.
Есть другой, менее сложный способ сделать это:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<p id="test_para">Test yes</p>
<script type="text/javascript">
var p = document.getElementById('test_para')
p.innerHTML = '<span>' p.innerHTML '</spn>';
</script>
</body>
</html>
Здесь мы размещаем наш абзац, используя id, как мы делали во фрагменте выше. Но вместо того, чтобы создавать HTML-элементы с помощью JavaScript, мы просто изменяем HTML внутри нашего абзаца, используя его свойство innerHTML.
Ответ №5:
Для этого достаточно одной строки!
document.querySelectorAll("p").forEach(e => e.innerHTML = `<span>${e.innerHTML}</span>`)