Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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从div标记中过滤出HTML标记_Javascript_Domparser - Fatal编程技术网

如何使用JavaScript从div标记中过滤出HTML标记

如何使用JavaScript从div标记中过滤出HTML标记,javascript,domparser,Javascript,Domparser,我有以下HTML代码: <div> 756 <span></span> </div> 756 使用JavaScript,我想从div标记中检索数字756,并将其递增1。从div标记中过滤出以便只获取数字的最佳方法是什么?最好的解决方案是将数字包装在自己的中。 如果不可能(您不创建HTML代码),您可以迭代的所有子节点。其中一个将是您想要定位的文本节点。最好的解决方案是将数字包装在它自己的中。 如果不可能(您不创建HTML代码)

我有以下HTML代码:

<div>
    756
    <span></span>
</div>

756

使用JavaScript,我想从
div
标记中检索数字756,并将其递增1。从div标记中过滤出
以便只获取数字的最佳方法是什么?

最好的解决方案是将数字包装在自己的
中。
如果不可能(您不创建HTML代码),您可以迭代
的所有子节点。其中一个将是您想要定位的文本节点。

最好的解决方案是将数字包装在它自己的
中。
如果不可能(您不创建HTML代码),您可以迭代
的所有子节点。其中一个将是您要定位的文本节点。

您可以使用
.innerText
来执行此操作

var div = document.getElementsByTagName("div")[0];

var inner;
if(div.innerText) {
   inner = div.innerText;
} else {
   inner = div.textContent;
}

var number = parseInt(inner);
number++;
alert(number);

.

您可以使用
.innerText
执行此操作

var div = document.getElementsByTagName("div")[0];

var inner;
if(div.innerText) {
   inner = div.innerText;
} else {
   inner = div.textContent;
}

var number = parseInt(inner);
number++;
alert(number);
.


756
var textNode=document.getElementById(“mydiv”).childNodes[0];
var number=parseInt(textNode.nodeValue);
textNode.nodeValue=number+1;
​


756
var textNode=document.getElementById(“mydiv”).childNodes[0];
var number=parseInt(textNode.nodeValue);
textNode.nodeValue=number+1;
​


756
​
d=document.getElementById(“编号”)
n=parseInt(d.innerHTML)+1;
警报(n)​;​

756
​
d=document.getElementById(“编号”)
n=parseInt(d.innerHTML)+1;
警报(n)​;​
试试这个:

var div = document.getElementsByTagName("div")[0],
    content = div.textContent || div.innerText;
除IE8之外的所有浏览器都支持
textContent
,除FF4之外的所有浏览器都支持
innerText
。因此,使用这两种方法,您应该会得到一个稳定的结果

这两个属性都返回带有剥离HTML标记的文本内容

示例:(在chrome/ff/ie7中测试)

现在,如果要增加它,只需执行以下操作:

content++;
它应该投射一个数字:

试试这个:

var div = document.getElementsByTagName("div")[0],
    content = div.textContent || div.innerText;
除IE8之外的所有浏览器都支持
textContent
,除FF4之外的所有浏览器都支持
innerText
。因此,使用这两种方法,您应该会得到一个稳定的结果

这两个属性都返回带有剥离HTML标记的文本内容

示例:(在chrome/ff/ie7中测试)

现在,如果要增加它,只需执行以下操作:

content++;

它应该投射一个数字:

假设以下html代码:

<div id="someDiv">
  756
  <span></span>
</div>

假设此html代码:

<div id="someDiv">
  756
  <span></span>
</div>

我使用拆分文本来获取数字。
还使用jQuery获取文本,您可以使用这里使用的其他方法

var divText = $('div').text();
var contentArray = divText.split('\n');       
var yay = parseInt(contentArray[1].trim(), 10);
alert(yay);
alert(yay++);

请参阅fiddle。

我在文本上使用了拆分来获取数字。
还使用jQuery获取文本,您可以使用这里使用的其他方法

var divText = $('div').text();
var contentArray = divText.split('\n');       
var yay = parseInt(contentArray[1].trim(), 10);
alert(yay);
alert(yay++);

请参见fiddle。

最好的方法是将数字包装在元素中,但您可以通过以下方法解决:


最好的方法是将数字包装在元素中,但您可以通过以下方法解决:


另一种方法是避免浏览器中innerText和textContent的不兼容。在使用正则表达式提取数字之后,我使用innerHTML,并且建议在使用parseInt时始终定义基数(这将简单地避免我让您发现的一些奇怪的惊喜),最后增加值

var theNum = parseInt(document.getElementById('someDiv').innerHTML.match(/\d+/), 10);
alert(theNum+=1)

另一种方法是避免浏览器中innerText和textContent的不兼容。在使用正则表达式提取数字之后,我使用innerHTML,并且建议在使用parseInt时始终定义基数(这将简单地避免我让您发现的一些奇怪的惊喜),最后增加值

var theNum = parseInt(document.getElementById('someDiv').innerHTML.match(/\d+/), 10);
alert(theNum+=1)

最简单的方法是将数字放在另一个span中,并使用javascriptuse
访问新span而不是div。innerText
然后parseInt(不要忘记基数)显示的结构是否总是相同的,并且数字总是位于该div的第一位?或者您需要更灵活的解决方案?抱歉,有点晚了,但发布了一个替代方案,以避免浏览器不兼容。var theNum=parseInt(document.getElementById('someDiv').innerHTML.match(/\d+/),10);alert(theNum+=1)最简单的方法是将数字放在另一个span中,并使用javascriptuse
访问新span而不是div。innerText
然后parseInt(不要忘记基数)显示的结构是否始终相同,并且数字始终位于该div的第一位?或者您需要更灵活的解决方案?抱歉,有点晚了,但发布了一个替代方案,以避免浏览器不兼容。var theNum=parseInt(document.getElementById('someDiv').innerHTML.match(/\d+/),10);警报(theNum+=1)收回。很抱歉Number(…)返回NaN,但parseInt(…)返回756retracting。很抱歉Number(…)返回NaN,但parseInt(…)确实返回756请阅读此处,Firefox确实存在“.innerText”的问题。刚刚更新了用于Firefox的.textContent的代码。请阅读此处,Firefox确实存在“.innerText”的问题。刚刚更新了用于Firefox的.textContent的代码。假定源代码中有换行符。按
/\s?@JanDvorak拆分你必须使用某种约定的格式,我假设他的示例就是这种格式。你提供的regexp确实更好。10x.假设源代码中有一个换行符。按
/\s?@JanDvorak拆分你必须使用某种约定的格式,我假设他的示例就是这种格式。你提供的regexp确实更好。10倍。或者只需
div.text()+1
。另外,jQuery没有被标记,您的代码将删除容器中的任何HTML。标题只是用“javascript”表示,如果标题用“jQuery”表示,答案将是相关的。抱歉,这就是我投票认为答案没有用或只是
div.text()+1
。此外,jQuery没有被标记,您的代码将删除容器中的任何HTML。标题只是用“javascript”表示,如果标题用“jQue”表示,答案将是相关的