为什么我无法获得以下代码片段的innerHTML

时间:2017-10-11 06:14:52

标签: jquery

我的div为id" divDesc0"。

我想在其中获取innerHTML或第一个div的主体。

这是我的HTML代码 -

<div class="row" id="divDesc0">
   <div class="col-sm-1 text-right">
    <p>jk m</p>
   </div>
   <div> 
     <span class="button" id="deldivDesc0" onclick="removeSegment(this.id)">
        <i class="glyphicon glyphicon-trash"></i>
     </span> 
   </div>
</div>

我试过以下但没有工作

$("#divDesc0 > div:first").attr("innerHTML")

但是未定义

3 个答案:

答案 0 :(得分:1)

Element.innerHTMLproperty of a DOM element,因此它不属于jQuery's .attr() method可访问的属性的一部分(尽管传统上可能是这样)。这种区别是在jQuery v1.6及更高版本中进行的:

  

从jQuery 1.6开始,.prop()方法提供了一种显式检索属性值的方法,而.attr()检索属性。

     

例如,selectedIndextagNamenodeNamenodeTypeownerDocumentdefaultCheckeddefaultSelected应为使用.prop()方法检索和设置。

因此,您有以下选择:

  1. 使用jQuery's .html() method返回 jQuery对象的innerHTML,即:

    $('#divDesc0 > div:first').html()
    
  2. 检索基础DOM节点并访问其.innerHTML属性,即:

    $('#divDesc0 > div:first')[0].innerHTML
    
  3. 使用.prop()直接访问jQuery对象上的innerHTML属性,即:

    $('#divDesc0 > div:first').prop('innerHTML');
    

答案 1 :(得分:0)

.attr("innerHTML")更改为.prop("innerHTML")

因为innerHTML不是属性。

小提琴: http://jsfiddle.net/rz8ebf6e/

答案 2 :(得分:0)

为什么不使用text()

var a=$('#divDesc0 > div:first').text();
alert(a);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="row" id="divDesc0">
   <div class="col-sm-1 text-right">
    <p>jk m</p>
   </div>
   <div> 
     <span class="button" id="deldivDesc0" onclick="removeSegment(this.id)"><i class="glyphicon glyphicon-trash"></i></span> 
   </div>
</div>