jQuery parent()方法不起作用

时间:2015-04-13 23:44:25

标签: javascript jquery

为什么Jquery中的parent()方法在以下情况下不起作用?

$('.class')[0].parent();

错误:Uncaught TypeError: undefined is not a function

但如果我使用:

$('.class').parent();

它有效并且给了我所有元素的父母class。我知道如何在jQuery中使用它,但问题是为什么浏览器将它解释为JavaScript代码而不是像我在使用[0]时的jQuery代码。

3 个答案:

答案 0 :(得分:3)

因为$('.class')[0]正在访问jQuery object中的DOM元素。

Native DOM elements没有jQuery方法,为什么您收到错误。

您可以使用.eq() method按索引访问它:

$('.class').eq(0).parent();

或者,您可以使用$('.class')[0]包装DOM元素$()以将其转换为jQuery对象:

$($('.class')[0]).parent();

(尽管使用.eq()方法。)

答案 1 :(得分:1)

.parent()方法适用于jQuery对象。您的问题是,您尝试将其用于不是jQuery对象的内容。

当您使用[ ]表示法从jQuery对象获取元素时,您将获得原始DOM元素节点引用。那些没有parent()方法。

您可以使用.eq() jQuery方法将所涉及的元素集限制为匹配的第一个元素,或者只将:first添加到选择器:

$('.class:first').parent();

答案 2 :(得分:1)



console.log($('.class').first().parent().html());

//or

console.log($('.class').eq(0).parent().html());
console.log($('.class').eq(1).parent().html());

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent1">
  <div class="class">
    1
    </div>
  </div>

<div class="parent2">
  <div class="class">
    2
    </div>
  </div>
&#13;
&#13;
&#13;