1

I have problem facing selecting div/span elements via jQuery contains(arg) method. I want to count the total number of elements that contain specific text. But it is giving different results to different HTML elelemts. See the code below.

$(document).ready(function(){
 
  $("#co").text($("span:contains('cool')").length)
  $("#co1").text($("div:contains('cool')").length)
  $("#co2").text($("li:contains('cool')").length)
  $("#co3").text($("p:contains('cool')").length)
});
Span -<span id="co"> </span>
<div></div>
Div -<span id="co1"> </span>
<div></div>
Li -<span id="co2"> </span>
<div></div>
p -<span id="co3"> </span>
<br><br>

<div> <div> cool </div> </div>
<p> <p> cool </p> </p>
<ul><li> <li> cool </li> </li></ul>
<span> <span> cool </span> </span>

The above code outputs result

Span -2
Div -2
Li -1 
p -1 

I just don't understand WHY, while every element should have same count.