jQuery find()用于无父集元素

时间:2014-09-23 18:59:22

标签: javascript jquery

我使用.add()构建一组jQuery对象:

var $set= $([]);
$set = $set.add('<div id="a"></div>');
$set = $set.add('<div id="b"></div>');
$set = $set.add('<div id="c"></div>');

我需要能够获得此集合中的特定元素,但是,除非jQuery集具有某种层次结构,否则.find()将不起作用。

这是一个jsfiddle,说明我在说什么:http://jsfiddle.net/3uope6xv/

有没有办法在“平面”中获取jQuery元素?一组jQuery元素?

2 个答案:

答案 0 :(得分:5)

find只查找后代,因为根元素使用filter

$set.filter('#a')

要加入它们,并找到后代和根元素,您可以将这些元素追加到一个共同的父元素,但是您已经知道这就是您在小提琴中所做的事情

答案 1 :(得分:3)

使用.filter()代替.find()

&#13;
&#13;
var $parentless = $([]);
$parentless = $parentless.add('<div id="a"></div>');
$parentless = $parentless.add('<div id="b"></div>');
$parentless = $parentless.add('<div id="c"></div>');

if ( $parentless.filter('#a').length > 0 ) {
    $('.parentless-box').text('found');
} else {
    $('.parentless-box').text('not found');
}

var $parent = $('<div class="parent"></div>');
$parent.append('<div id="d"></div>');
$parent.append('<div id="e"></div>');
$parent.append('<div id="f"></div>');

if ( $parent.find('#d').length > 0 ) {
    $('.parent-box').text('found');
} else {
    $('.parent-box').text('not found');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parentless-box"></div>
<div class="parent-box"></div>
&#13;
&#13;
&#13;