Javascript 有没有办法检查文本是否在html标记内?
假设我需要从特定html标记中提取每个文本: HTML:Javascript 有没有办法检查文本是否在html标记内?,javascript,html,tags,Javascript,Html,Tags,假设我需要从特定html标记中提取每个文本: HTML: 最好的方法是使用innerText,innertHTML提供标记中的全部内容,包括它所包含的html标记以及它的子项或子项所包含的html。 InnerText始终提供它所包含的文本(仅元素而非其Decedents) 在你的例子中 <span id ='spanid'>hello<a>hi</a></span> 你好 document.getElementbyID('spanid')。
最好的方法是使用innerText,innertHTML提供标记中的全部内容,包括它所包含的html标记以及它的子项或子项所包含的html。
InnerText始终提供它所包含的文本(仅元素而非其Decedents)
在你的例子中
<span id ='spanid'>hello<a>hi</a></span>
你好
document.getElementbyID('spanid')。innerText将仅以字符串形式给出hello
而document.getElementbyID('spanid').innerHTML将以字符串格式给出它所包含的整个hmtl(此处hellohi
)
要获取span标记中所有可能元素的innerText,您需要使用递归,没有其他方法,因为我们不知道它有多少子元素或死者
printInnerText(ele){
if(ele.childNodes.length >= 1){
children = ele.childNodes;
for(var i=0;i<children.length;i++)
printInnerText(children[i])
}else{
console.log(ele.innerText);
}
}
printInnerText(ele){
如果(ele.childNodes.length>=1){
childrends=ele.childNodes;
对于(var i=0;i来说,最好的方法是使用innerText,innertHTML提供标记内的全部内容,包括它所包含的html标记以及它的子项或子项所包含的html。
InnerText始终提供它所包含的文本(仅元素而非其Decedents)
在你的例子中
<span id ='spanid'>hello<a>hi</a></span>
你好
document.getElementbyID('spanid')。innerText将仅以字符串形式给出hello
而document.getElementbyID('spanid').innerHTML将以字符串格式给出它所包含的整个hmtl(此处hellohi
)
要获取span标记中所有可能元素的innerText,您需要使用递归,没有其他方法,因为我们不知道它有多少子元素或死者
printInnerText(ele){
if(ele.childNodes.length >= 1){
children = ele.childNodes;
for(var i=0;i<children.length;i++)
printInnerText(children[i])
}else{
console.log(ele.innerText);
}
}
printInnerText(ele){
如果(ele.childNodes.length>=1){
childrends=ele.childNodes;
对于(var i=0;i您可以像这样使用HTML DOM innerHTML属性:
if(document.getElementById("container").innerHTML.length > 0)
console.log(document.getElementById("container").innerHTML);
或者使用Jquery:
if($("#container").html().length > 0)
console.log($("#container").html());
您可以像这样使用HTML DOM innerHTML属性:
if(document.getElementById("container").innerHTML.length > 0)
console.log(document.getElementById("container").innerHTML);
或者使用Jquery:
if($("#container").html().length > 0)
console.log($("#container").html());
将innerHTML
更改为innerText
或更好的。textContent
迭代元素的子节点,并找到所有文本节点。@RandyCasburntextContent
将返回嵌套标记内的文本。他们只需要不在标记内的文本。不,从特定html标记中选择文本;然后返回sh使用id=“subject”选择div
的ows代码
@Proo1931更改示例,使所有标记中都有文本,然后显示所需的结果。将innerHTML
更改为innerText
或更好的。textContent
迭代元素的子节点,并找到所有文本节点。@RandyCasburntextContent
将返回嵌套ta中的文本gs.他们只想要不在标记内的文本。不,OP说的是来自特定html标记的文本;然后显示选择div
和id=“subject”的代码
@Proo1931更改您的示例,使所有标记中都有文本,然后显示所需的结果。您忽略了标记外的限定符。很好,但我真的不知道“主题”内有哪些标记,我需要所有可能在标记内的文本片段(文本)和或内部的任何标记。如果我理解您的查询,您只需要span标记具有的所有可能元素的内部文本?@Proo1931recursion:)你总是能学到一些新的东西,谢谢,伙计们,这正是我需要的。好吧,这个函数应该是这样的-最好删除回车和制表符-否则会有更多的子节点。你忽略了标记外的限定符。很好,但我真的不知道“主题”内的标记是什么,我需要每个文本片段t也可以在(text)内或任何标记内。如果我理解您的查询,您只需要span标记具有的所有可能元素的innerTExt?@Proo1931recursion:)你们总是能学到一些新东西,谢谢你们,这正是我所需要的。好吧,这个函数应该是这样的-删除输入和标签会很好-否则会有更多的子节点。