2015-10-03 2 views
-1

Это то, что я хочу сделать:Как выбрать элемент, соответствующий условию .text() == ""?

<label class="myClass"></label> <!-- I want to hide this --> 
<label class="myClass">Some text here</label> <!-- Don't hide --> 

$('label.myClass').text() == "") { 
     $('this').hide(); 
} 

Конечно, $(this) указывает на окно, а не к label.myClass, который удовлетворяет условию. Как переписать, чтобы я выбрал все ярлыки, которые содержат текст внутри?

ответ

1
var label = $('label.myClass').filter(function (index) { 
    if ($(this).text() == "") { 
     return $(this) 
    } 
}) 

console.log(label.attr('class')) 
console.log(label.text()) 
console.log(label.length) 

Использование .filter()

DEMO

1

Что вы можете сделать, это так:

$("label.myClass").each(function(index) { 
if ($(this).text() == "") { 
    $(this).hide(); 
    } 
}); 
1

Попробуйте использовать :empty селектор

$("label.myClass:empty").hide()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 
<label class="myClass"></label> <!-- I want to hide this --> 
 
<label class="myClass">Some text here</label> <!-- Don't hide -->

Смежные вопросы