Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
92
rated 0 times [  94] [ 2]  / answers: 1 / hits: 19788  / 14 Years ago, tue, december 28, 2010, 12:00:00
<html>
<head>
<script type=text/javascript src=jquery.js></script>
</head>
<body>
<ul>
<li><strong>list</strong> item 1 -
one strong tag</li>
<li><strong>list</strong> item <strong>2</strong> -
two <span>strong tags</span></li>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
<li>list item 6</li>
</ul>

<script type=text/javascript>
$('li').filter(function(index) {
return $('strong', this).length == 1;
}).css('background-color','red');
</script>

</body>
</html>


Given the HTML above, what's the meaning of the comma in the selector below?



return $('strong', this).length == 2;


What will happen if I remove the word 'strong'?


More From » jquery

 Answers
59

It sets this as the context from which the query is performed.



An equivalent (and slightly more efficient) way to write it is:



return $(this).find('strong').length == 2;


When I say equivalent, I mean behind the scenes, it is actually flipped around into the version above.



If you remove the 'strong', you won't have a valid selector. You'll be doing:



return $(this).find('').length == 2;


Looks like it just returns an empty jQuery object, which means length will be 0, so you won't get any elements out of the .filter().






Reference:



http://api.jquery.com/jQuery/



jQuery( selector [, context ] )



context



Type: Element or jQuery



A DOM Element, Document, or jQuery to use as context


[#94473] Thursday, December 23, 2010, 14 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
collinisaaka

Total Points: 194
Total Questions: 105
Total Answers: 104

Location: Tonga
Member since Tue, Nov 30, 2021
3 Years ago
;