Javascript 如何获得一个';s元素的text(),但在divs之后添加空格?
嗨!我正在尝试从元素的.contents().text()输出字符串。。。但是在每个div的内容之间有空格(不改变实际的DOM) HTML:Javascript 如何获得一个';s元素的text(),但在divs之后添加空格?,javascript,html,jquery,Javascript,Html,Jquery,嗨!我正在尝试从元素的.contents().text()输出字符串。。。但是在每个div的内容之间有空格(不改变实际的DOM) HTML: <!-- I don't have control over how many divs are in .myTextArea, or what text. It's really dynamic. There are also lists, etc.--tons of different types of elements. --> <
<!-- I don't have control over how many divs are in .myTextArea, or what text. It's really dynamic. There are also lists, etc.--tons of different types of elements. -->
<div class="myTextArea">
<div>Hey there!</div><div>I like turtles.</div><div>Do you like them?</div>
</div>
var myTextDescription = $(".myTextArea").contents().text();
console.log(myTextDescription);
目前,它输出:
Hey there!I like turtles.Do you like them?
…这就是我希望它输出的内容:相同的内容,但是在每个div的内容后面有空格:
Hey there! I like turtles. Do you like them?
注意:其他答案使您更改实际的DOM(也就是说,它们在页面上的元素之后添加实际的空格),然后它们只抓取text()字符串。我不想改变DOM 另外,我不能用.html()来代替,而试着去掉一些东西,因为会有太多类型的元素需要担心
解决这个问题的一种方法是使用JavaScript的querySelectorAll方法返回myTextArea元素中所有div的列表。然后,您可以遍历列表中的每个元素,获取其内部文本,并在每个元素后放置空格:
var mytext=document.queryselectoral('.myTextArea>div');
var show=document.querySelector('#show');
var输出=”;
对于(var x=0;x
嘿!
我喜欢海龟。
你喜欢吗?
解决这个问题的一种方法是使用JavaScript的querySelectorAll方法返回myTextArea元素中所有div的列表。然后,您可以遍历列表中的每个元素,获取其内部文本,并在每个元素后放置空格:
var mytext=document.queryselectoral('.myTextArea>div');
var show=document.querySelector('#show');
var输出=”;
对于(var x=0;x
嘿!
我喜欢海龟。
你喜欢吗?
你就快到了。将.text()
替换为:
//get text content of all nodes
.map((i,d) => d.textContent).get()
//remove white space
.filter(t => !!t.trim())
//join the text from all nodes with a space
.join(' ');
请查看下面的演示:
var myTextDescription=$(“.myTextArea”).contents().map((i,d)=>d.textContent.get().filter(t=>!!.t.trim()).join(“”);
console.log(myTextDescription)代码>
嘿!我喜欢海龟。你喜欢它们吗?
你就快到了。将.text()
替换为:
//get text content of all nodes
.map((i,d) => d.textContent).get()
//remove white space
.filter(t => !!t.trim())
//join the text from all nodes with a space
.join(' ');
请查看下面的演示:
var myTextDescription=$(“.myTextArea”).contents().map((i,d)=>d.textContent.get().filter(t=>!!.t.trim()).join(“”);
console.log(myTextDescription)代码>
嘿!我喜欢海龟。你喜欢它们吗?
您知道是否可以从具有特定类的div中排除文本(“不包括”)?我尝试了“.not”(“.notinclude”)”但似乎不起作用。如果需要的话,我也可以用另一个问题问这个问题。太棒了。非常感谢。您知道是否可以从具有特定类的div中排除文本(“.doinclude”)?我尝试了“.not”(“.notinclude”)”但似乎不起作用。如果需要的话,我也可以用另一个问题问这个问题。太棒了。非常感谢。