Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法检查文本是否在html标记内?_Javascript_Html_Tags - Fatal编程技术网

Javascript 有没有办法检查文本是否在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')。

假设我需要从特定html标记中提取每个文本:

HTML:



最好的方法是使用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
迭代元素的子节点,并找到所有文本节点。@RandyCasburn
textContent
将返回嵌套标记内的文本。他们只需要不在标记内的文本。不,从特定html标记中选择文本;然后返回sh使用
id=“subject”选择
div
的ows代码
@Proo1931更改示例,使所有标记中都有文本,然后显示所需的结果。将
innerHTML
更改为
innerText
或更好的
。textContent
迭代元素的子节点,并找到所有文本节点。@RandyCasburn
textContent
将返回嵌套ta中的文本gs.他们只想要不在标记内的文本。不,OP说的是来自特定html标记的文本;然后显示选择
div
id=“subject”的代码
@Proo1931更改您的示例,使所有标记中都有文本,然后显示所需的结果。您忽略了标记外的限定符。很好,但我真的不知道“主题”内有哪些标记,我需要所有可能在标记内的文本片段(文本)和或内部的任何标记。如果我理解您的查询,您只需要span标记具有的所有可能元素的内部文本?@Proo1931recursion:)你总是能学到一些新的东西,谢谢,伙计们,这正是我需要的。好吧,这个函数应该是这样的-最好删除回车和制表符-否则会有更多的子节点。你忽略了标记外的限定符。很好,但我真的不知道“主题”内的标记是什么,我需要每个文本片段t也可以在(text)内或任何标记内。如果我理解您的查询,您只需要span标记具有的所有可能元素的innerTExt?@Proo1931recursion:)你们总是能学到一些新东西,谢谢你们,这正是我所需要的。好吧,这个函数应该是这样的-删除输入和标签会很好-否则会有更多的子节点。