jQuery返回的DOM元素的父级

时间:2015-05-18 11:16:37

标签: javascript jquery dom

我在解决这里有什么问题时遇到了问题。我使用jQuery来查找元素,但是我没有使用jQuery找不到元素的父元素:

$rewrite = array(
    'slug'                => 'project',
    'with_front'          => true,
    'pages'               => true,
    'feeds'               => true,
);

使用上面的方法调用find_parent函数:

$(".selectbox").on("click", function(e) {
   e = e || window.event;
   var eTarget = e.target || e.srcElement;
   find_parent(eTarget);
});

但是如果使用它来调用find_parent则会失败:

function find_parent (el) {
   element_parent = el.parentElement;
}

我不是在寻找“为什么不使用jQuery parent()”的解决方案 - 而且它运行正常。我试图理解为什么普通的DOM方法不适用于jQuery返回的元素以及我做错了什么。

编辑: 上面的示例代码不是正在使用的实际代码,而是一个非常简化的版本来说明我的问题。实际的function someFunction { selectBoxEl = $(".xyz").find('.selectbox'); find_parent (selectBoxEl); } 函数是一个漫长而复杂的部分,它通过许多元素及其父级进行各种更新,并且它不使用jQuery。我想利用该代码,而不是在示例函数find_parent()中为我的需要复制它。

2 个答案:

答案 0 :(得分:2)

jQuery返回的元素被包装。使用find_parent(selectBoxEl[0]);

答案 1 :(得分:1)

由于您已经在使用jQuery,因此无需使用单独的函数来识别父DOM元素。 $('#id').parent()返回父DOM元素。

如果你想使用.parentElement javascript方法,请使用以下方法。

$('#id')[0].parentElement

JQuery实际上并没有返回任何DOM元素,它只返回DOM对象的实例。 parentElement propery必须仅适用于DOM元素而不是实例对象。