我需要获取html标记Div的文本(id = 'div12Item')
(new content )
下面是我的HTML代码
<div name="div12Item" id="div12Item">
new content
<ul id="sortable" >
<li ></span>Item 1</li>
<li ></span>Item 2</li>
<li ></span>Item 3</li>
</ul>
</div>
当我执行此javascript代码时alert(document.getElementById('div12Item').textContent);
我得到新内容第1项第2项第3项
但是我需要在div中获取文本,即使在HTML标签Div中还有其他HTML标签,例如我的示例
答案 0 :(得分:3)
您可以过滤出nodetype等于textnode的元素以及.text()
来获取它的文本:
var text = $("#div12Item").contents().filter(function() {
return this.nodeType == Node.TEXT_NODE;
}).text();
var text = $("#div12Item").contents().filter(function() {
return this.nodeType == Node.TEXT_NODE;
}).text();
alert(text.trim());
&#13;
<div name="div12Item" id="div12Item">
new content
<ul id="sortable" >
<li ></span>Item 1</li>
<li ></span>Item 2</li>
<li ></span>Item 3</li>
</ul>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
答案 1 :(得分:2)
假设您只想检索new content
值,并且它始终是#div12Item
的第一个子元素,那么您可以使用childNodes
属性,就像这样:
console.log(document.getElementById('div12Item').childNodes[0].textContent.trim());
&#13;
<div name="div12Item" id="div12Item">
new content
<ul id="sortable">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
&#13;
或者,如果您更喜欢使用jQuery,可以使用contents()
:
console.log($('#div12Item').contents().first().text().trim());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div name="div12Item" id="div12Item">
new content
<ul id="sortable">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
&#13;
答案 2 :(得分:0)
这可能很有用。
SSL_VERIFY_NONE
var a = document.getElementById("div12Item").childNodes[0].data;
console.log(a); //actual text
console.log(a.replace(/ /g, '')); //whitespaces trimmed
<强>提示强> 始终使用浏览器的javascript控制台。这样你总能找到新的线索。这些是步骤,我是如何取得成果的。 的 1)强> 的 2)强> 的 3)强>
答案 3 :(得分:0)
$( “#div12Item”)。内容()。当量(0)的.text()。修剪()