将字符串添加到 div class 的 child 个元素
Adding string to child elements of div class
我有以下脚本,它没有按照我的要求执行:
<html>
<body>
<div class="test">
<div class="one">sdas</div >
<div class="two">adsa</div >
<div class="three">sad</div >
<div class="four">sada</div >
</div>
<br /><br /><br />
<div id="DIV2">
</div>
<p>Click the button to change the text of the first list item (index 0).</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var MyDiv2 = document.getElementById('DIV2');
var doc = document.getElementsByClassName("test");
var str = 'str';
for (var i = 0; i < doc.length; i++) {
MyDiv2.innerHTML = doc[i].innerHTML + str;
}
}
</script>
</body>
</html>
按下按钮后,输出如下:
sdas
adsa
sad
sada
sdas
adsa
sad
sada
str
但是,我想要以下输出:
sdas
adsa
sad
sada
sdas
str
adsa
str
sad
str
sada
str
所以对于每个 child class,应该添加 str
。我怎样才能做到这一点?
我建议您像这样使用 querySelectorAll
更改 doc
变量选择器:
function myFunction() {
// ...
var doc = document.querySelectorAll(".test span");
var str = 'str';
for (var i = 0; i < doc.length; i++) {
MyDiv2.innerHTML += doc[i].innerHTML + ' ' + str + ' ';
}
}
更新
您已从 span
更改为 div
,因此如果您只想要 div
,则可以使用 doc = document.querySelectorAll(".test div")
。
一般获取所有子项,可以使用doc = document.querySelector(".test").children
.
使用 querySlectorAll
并定位 div 及其子跨度。在您的代码中 doc[i].innerHTML
将提供子 span 元素,但假设变量 str 添加到 textContent
function myFunction() {
// a new variable which will be concatenation of all the text
var newString = ''
var MyDiv2 = document.getElementById('DIV2');
var doc = document.querySelectorAll(".test span");
var str = 'testString';
for (var i = 0; i < doc.length; i++) {
// trim is used to remove any white space
newString += doc[i].textContent.trim() + str + ' ';
}
MyDiv2.innerHTML = newString
}
<div class="test">
<span class="one">sdas</span>
<span class="two">adsa</span>
<span class="three">sad</span>
<span class="four">sada</span>
</div>
<br /><br /><br />
<div id="DIV2">
</div>
<p>Click the button to change the text of the first list item (index 0).</p>
<button onclick="myFunction()">Try it</button>
给你。
取一个新的变量即output,循环的时候把结果压入这个数组。完成循环后,加入数组。请注意,我现在正在 div
上使用 id 选择器。
<body>
<div class="test" id="test">
<div class="one">sdas</div >
<div class="two">adsa</div >
<div class="three">sad</div >
<div class="four">sada</div >
</div>
<br /><br /><br />
<div id="DIV2">
</div>
<p>Click the button to change the text of the first list item (index 0).</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var MyDiv2 = document.getElementById('DIV2');
var items = document.getElementById("test").children;
var str = 'str';
var output = [];
for (var i = 0; i < items.length; i++) {
output.push(`${items[i].innerHTML} <br /> ${str} <br />`);
}
MyDiv2.innerHTML = output.join("");
}
</script>
</body>
我有以下脚本,它没有按照我的要求执行:
<html>
<body>
<div class="test">
<div class="one">sdas</div >
<div class="two">adsa</div >
<div class="three">sad</div >
<div class="four">sada</div >
</div>
<br /><br /><br />
<div id="DIV2">
</div>
<p>Click the button to change the text of the first list item (index 0).</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var MyDiv2 = document.getElementById('DIV2');
var doc = document.getElementsByClassName("test");
var str = 'str';
for (var i = 0; i < doc.length; i++) {
MyDiv2.innerHTML = doc[i].innerHTML + str;
}
}
</script>
</body>
</html>
按下按钮后,输出如下:
sdas
adsa
sad
sada
sdas
adsa
sad
sada
str
但是,我想要以下输出:
sdas
adsa
sad
sada
sdas
str
adsa
str
sad
str
sada
str
所以对于每个 child class,应该添加 str
。我怎样才能做到这一点?
我建议您像这样使用 querySelectorAll
更改 doc
变量选择器:
function myFunction() {
// ...
var doc = document.querySelectorAll(".test span");
var str = 'str';
for (var i = 0; i < doc.length; i++) {
MyDiv2.innerHTML += doc[i].innerHTML + ' ' + str + ' ';
}
}
更新
您已从 span
更改为 div
,因此如果您只想要 div
,则可以使用 doc = document.querySelectorAll(".test div")
。
一般获取所有子项,可以使用doc = document.querySelector(".test").children
.
使用 querySlectorAll
并定位 div 及其子跨度。在您的代码中 doc[i].innerHTML
将提供子 span 元素,但假设变量 str 添加到 textContent
function myFunction() {
// a new variable which will be concatenation of all the text
var newString = ''
var MyDiv2 = document.getElementById('DIV2');
var doc = document.querySelectorAll(".test span");
var str = 'testString';
for (var i = 0; i < doc.length; i++) {
// trim is used to remove any white space
newString += doc[i].textContent.trim() + str + ' ';
}
MyDiv2.innerHTML = newString
}
<div class="test">
<span class="one">sdas</span>
<span class="two">adsa</span>
<span class="three">sad</span>
<span class="four">sada</span>
</div>
<br /><br /><br />
<div id="DIV2">
</div>
<p>Click the button to change the text of the first list item (index 0).</p>
<button onclick="myFunction()">Try it</button>
给你。
取一个新的变量即output,循环的时候把结果压入这个数组。完成循环后,加入数组。请注意,我现在正在 div
上使用 id 选择器。
<body>
<div class="test" id="test">
<div class="one">sdas</div >
<div class="two">adsa</div >
<div class="three">sad</div >
<div class="four">sada</div >
</div>
<br /><br /><br />
<div id="DIV2">
</div>
<p>Click the button to change the text of the first list item (index 0).</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var MyDiv2 = document.getElementById('DIV2');
var items = document.getElementById("test").children;
var str = 'str';
var output = [];
for (var i = 0; i < items.length; i++) {
output.push(`${items[i].innerHTML} <br /> ${str} <br />`);
}
MyDiv2.innerHTML = output.join("");
}
</script>
</body>