0

親 td の各 .itemToFilter 子がテストに失敗した場合 (つまり、すべて TRUE を返す)、alert('hello world') を実行する必要があります。しかし、そうではありません!

最初の IF ステートメントは正しく機能しており、アラートでテストしました。しかし、2番目のものではありません。

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');
    }

});​
4

2 に答える 2

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');
}
于 2012-08-30T02:11:22.787 に答える
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');
    }
});
于 2012-08-30T02:12:39.947 に答える