У меня есть абзац, который я хотел бы удалить.
document.getElementById(id).innerHTML = "";
похоже, не работает. У кого-то есть лучшее решение?
Вот пример
<!DOCTYPE html>
<html>
<head>
<script>
document.getElementById("p").innerHTML = "";
</script>
</head>
<body>
<p id="p">
words
</p>
</body>
</html>
но слова в абзаце не удаляются. Заранее благодарим любого, кто может помочь.
<!DOCTYPE html>
<html>
<head>
<!-- here the p tag doesn't exist yet -->
<script>
document.getElementById("p").innerHTML = "";
</script>
</head>
<body>
<p id="p">
words
</p>
<!-- however here it does exist -->
</body>
</html>
как это исправить?
// only use this if you can't move your javascript at the bottom
window.onload = function() {
document.getElementById("p").innerHTML = "";
}
или переместите свой javascript в конце страницы (это предпочтительный вариант, так как javascript всегда должен быть загружен в конце страницы)
<!DOCTYPE html>
<html>
<head>
<!-- here the p tag doesn't exist yet -->
</head>
<body>
<p id="p">
words
</p>
<!-- however here it does exist -->
<script>
document.getElementById("p").innerHTML = "";
</script>
</body>
</html>
function funboi()
{
document.getElementById("p").innerHTML = "";
}
<!-- Just add a button. Works fine-->
<p id="p">
words are amazing
</p>
<button onclick="funboi()">click to delete</button>
Сделайте это функцией и добавьте с событием onload для тела, которое оно должно работать:
<script>
function empty(){
document.getElementById("p").innerHTML = "";
}
</script>
<body onload='empty()'>
<p id="p">
words
</p>
</body>
Я часто использую jQuery для этой функции, но, поскольку вы ищете чистый синтаксис javascript. вы захотите использовать этот код:
document.getElementById("p").remove();
Имейте в виду, что вы используете что-то, что не в спецификации W3C... (удаление с помощью innerHTML = '')
var elem = document.getElementById(id);
if (!elem) {
console.log("No element for id:"+id);
} else {
elem.innerHTML="";
console.log("Should work");
}