获取第一个HTML标记的文本内容

时间:2016-07-26 08:43:34

标签: javascript jquery html

我需要获取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标签,例如我的示例

4 个答案:

答案 0 :(得分:3)

您可以过滤出nodetype等于textnode的元素以及.text()来获取它的文本:

var text = $("#div12Item").contents().filter(function() {
  return this.nodeType == Node.TEXT_NODE;
}).text();

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:2)

假设您只想检索new content值,并且它始终是#div12Item的第一个子元素,那么您可以使用childNodes属性,就像这样:

&#13;
&#13;
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;
&#13;
&#13;

或者,如果您更喜欢使用jQuery,可以使用contents()

&#13;
&#13;
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;
&#13;
&#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) enter image description here 2) enter image description here 3) enter image description here

答案 3 :(得分:0)

$( “#div12Item”)。内容()。当量(0)的.text()。修剪()