Reputation: 4022
I'm building a set of jQuery objects using .add():
var $set= $([]);
$set = $set.add('<div id="a"></div>');
$set = $set.add('<div id="b"></div>');
$set = $set.add('<div id="c"></div>');
I need to be able to get specific elements in this set, however, .find() will not work unless the jQuery set has some sort of hierarchical structure.
Here is a jsfiddle illustrating what im talking about: http://jsfiddle.net/3uope6xv/
Is there any way to get a jQuery element in a 'flat' set of jQuery elements?
Upvotes: 1
Views: 79
Reputation: 36458
Use .filter()
instead of .find()
.
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');
}
<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>
Upvotes: 3