如何在js / jquery中获取html标签的内部html?

时间:2016-08-08 12:20:28

标签: javascript jquery html css

例如我有:

<p class="question"> 
this is my paragraph 
  <p> And i'm inside 
  tag in question class  
    <h1> And this is my heading</h1> 
  </p>
</p>

问题是如何获得问题类的内部html,如下所示:

this is my paragraph 
<p> And i'm inside tag in question class 
  <h1> And this is my heading</h1> 
</p>

6 个答案:

答案 0 :(得分:1)

有两个函数可以获取元素的内部html

  1. .text()
  2. .html()
  3. <强>的.text()

    console.log($(".question").text());
    

    .text()将提供元素的innertext但不提供标签

    .html()

    console.log($(".question").html());
    

    .html()这个函数也会给出内部标签。

    this is my paragraph <p> And i'm inside 
    tag in question class <h1> And this is my heading
    </h1> </p>
    
      

    在您的情况下,.html()会没事的

答案 1 :(得分:1)

As per w3c docs

  

如果p元素紧跟着地址,文章,旁边,blockquote,dir,div,dl,fieldset,footer,form,h1,h2,h3,h4,h5,则可以省略p元素的结束标记, h6,header,hr,menu,nav,ol,p,pre,section,table或ul元素,或者如果父元素中没有更多内容且父元素不是元素。

由于您的HTML在p中包含p标记,该标记充当结束标记,而p标记仅包含那么多文本。由于</p>标记因文档而关闭,p在此处没有任何作用。虽然p标记允许的内容为phrasing contents

<小时/> 您可以使用div代替p代码使其有效,并使用dom元素的 innerHTML 属性获取HTML内容。

console.log(
  document.querySelector('.question').innerHTML
);
<div class="question">
  this is my paragraph
  <div>And i'm inside tag in question class
    <h1> And this is my heading
</h1> 
  </div>
</div>

答案 2 :(得分:0)

您可以使用:

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};

var res = Object.entries(obj);

console.log(res);

或者:

$(".question").text()

Try it in JSFIDDLE

答案 3 :(得分:0)

不需要jQuery。

您需要Element.innerHTML函数。 https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML

如果页面上只有一个实例,我建议使用ID而不是类。

myString = document.getElementById('id').innerHTML;

答案 4 :(得分:0)

嵌套段落很糟糕。

w3.org 陈述:

  

<p>元素代表一个段落。它不能包含块级   元素(包括<p>本身)。

所以

console.log($('.question').html());

console.log(document.getElementsByClassName("question")[0].innerHTML);

只会获取&#34; 这是我的段落&#34;

建议的解决方案:

而是将您的内容包装在div中,然后访问HTML。 innerHTML可以通过各种方法访问,其中很少有。

  1. querySelector()document.querySelector('.question').innerHTML
  2. getElementsByClassName()console.log(document.getElementsByClassName("question")[0].innerHTML); getElementsByClassName()将返回匹配元素的数组,因此我使用index来访问第一个elemnent。
  3. getElementById()document.getElementById(id).innerHTML
  4. <强> 实施例

    &#13;
    &#13;
    var t = document.getElementsByClassName("question");
    console.log(t[0].innerHTML);
    &#13;
    <div class="question">
      this is my paragraph
      <div>And i'm inside tag in question class
        <h1> And this is my heading</h1> 
      </div>
    </div>
    &#13;
    &#13;
    &#13;

答案 5 :(得分:0)

谢谢大家给我的建议。 但我解决了我的问题只是覆盖了问题类段落与这样的div标签

<div class="outer">
<p class="question"> 
this is my paragraph<p>hello world</p> <p> And i'm inside 
tag in question class <h1> And this is my heading
</h1> </p></p>
</div>

并使用    $('.outer').html(); 它打印所有内部HTML。