I would like to use Jquery to add a class to "li" element that contains a "span" element with a html/val equal to zero.
For Example if my code looks like this:
- Item 130
- Item 20
- Item 320
I want to change it to the following:
- Item 130
- Item 20
- Item 320
In the past I have used code to check elements attribute values, but never their html/val doing something to this effect...
$('li').has('span.num').addClass('disabled');
However in this case that would result in:
- Item 130
- Item 20
- Item 320
Which is obviously not going work... Thanks
解决方案
This should do what you want.
$('li').each(function(){
if( $(this).find('span.num').text() == '0' ) $(this).addClass('disabled')
});
I would have suggested the following:
$('li').has('span.num:contains(0)').addClass('disabled')
But it doesn't work, as it checks if the value exists inside the html — not for an exact match. In this case, each of the span.num elements have a 0 in them, so every li would get the selected class. There doesn't seem to be an :equals() counterpart to the :contains() selector.