如果父td中的每个.itemToFilter子节点都未通过测试(因此返回全部为TRUE),则应执行alert('hello world')。但事实并非如此!
第一个IF语句工作正常,我已经通过警报对其进行了测试。但不是第二个。
var businessTypePullDownValue = $('.businessTypePullDown').val();
$('.businessTypeRow td').each( function() {
var foundOne = $(this).children('.itemToFilter').each( function() {
if(($(this).attr('value') == businessTypePullDownValue)) {
return true;
}
});
if(!foundOne) {
alert('hello world');
}
});
答案 0 :(得分:3)
在true
内返回each
只会继续下一次迭代。你需要做这样的事情:
var foundOne = false;
$(this).children('.itemToFilter').each( function() {
if(($(this).attr('value') == businessTypePullDownValue)) {
foundOne = true;
return false; // break the loop
}
});
if(!foundOne) {
alert('hello world');
}
答案 1 :(得分:1)
$('.businessTypeRow td').each( function() {
// get child element which class is itemToFilter and
// value equals to businessTypePullDownValue
var $elements = $('.itemToFilter[value="' + businessTypePullDownValue + '"]', this);
if($elements.length > 0) {
alert('Hello world');
}
});