我们如何更改v2 div中存在的p标签的值?
<div id="v1">
<div id="flow">
<p id="content">Hello</p>
</div>
</div>
<div id="v2">
<div id="flow">
<p id="content">Hello</p>
</div>
</div>
答案 0 :(得分:1)
对每个id
使用唯一的p
,并在innerHTML
之间进行切换
var c1=document.getElementById("content1").innerHTML;
var c2=document.getElementById("content2").innerHTML;
document.getElementById("content1").innerHTML = c2;
document.getElementById("content2").innerHTML = c1;
<div id="v1">
<div class="flow">
<p id="content1">Hello</p>
</div>
</div>
<div id="v2">
<div class="flow">
<p id="content2">Hello of 2</p>
</div>
</div>
答案 1 :(得分:0)
这里。是的,ID应该是唯一的。
document.querySelector('#v2 div p').innerHTML = 'changed';
<div id="v1">
<div id="flow">
<p id="content">Hello</p>
</div>
</div>
<div id="v2">
<div id="flow">
<p id="content">Hello</p>
</div>
</div>
答案 2 :(得分:0)
这是无效的语法,因此通常建议在页面上多次使用一个ID,但这是您的处理方式:
<div id="v1">
<div id="flow">
<p id="content">Hello</p>
</div>
</div>
<div id="v2">
<div id="flow">
<p id="content">Hello</p>
</div>
</div>
document.getElementById("v2").getElementById("content").innerText = "Some new text";
答案 3 :(得分:0)
id
。带页面的两个元素都不应具有相同的id
。如果要在同一组中包含多个元素,可以使用class
属性。有关更多详细信息,请参见this帖子。querySelector()
方法获取对所需元素的引用,并使用您要添加的内容覆盖其textContent
属性。
let para = document.querySelector('#v2 p.content');
para.textContent = 'World';
<div id="v1">
<div class="flow">
<p class="content">Hello</p>
</div>
</div>
<div id="v2">
<div class="flow">
<p class="content">Hello</p>
</div>
</div>
参考:
答案 4 :(得分:0)
<div id="v1">
<div id="flow">
<p id="content">Hello</p>
</div>
</div>
<div id="v2">
<div id="flow">
<p id="content">Hello</p>
</div>
</div>
这将适用于v2 div中的所有p和嵌套p。
<script>
traverse=(node)=>{
for(let i=0;i<node.childElementCount;i++){
if(node.children[i].nodeName=="p"){
node.children[i].innerHTML=`Your HTML`;
}
if(node.children[i].childElementCount>0)
{
traverse(node.children[i]);
}
}
}
traverse(document.getElementById("v2"));
</script>