0

次のような HTML があります。

<div class="paginate">

    <ul>
        <li class="first inactive">
            <a class="page-link" data-number="1">«</a>
        </li>
        <li class="previous inactive">
            <a class="page-link" data-number="1">«</a>
        </li>
    </ul>

</div>

次のような jQuery 関数を呼び出しています。

$('.paginate').on('click', 'li a.page-link', function () {

    var self = $(this).parent().parent();

    console.log(self.find('li.first').hasClass('inactive') || self.find('li.previous').hasClass('inactive'));
    console.log(self.find('li.first') == $(this).parent() || self.find('li.previous') == $(this).parent());

}

通話が着信したとき、コンソールに記録された最初の条件はであり、これは予想どおりですが、2 番目の条件は、クラスまたはを持つリンクをクリックするとtrue常にtrue になると予想されます。この場合、なぜ機能しないのですか?jQueryでオブジェクトの等価性をチェックする他の方法はありますか?falsefirstprevious==

4

1 に答える 1

4

.is()を使用できます

console.log(self.find('li.first').is($(this).parent()) || self.find('li.previous').is( $(this).parent()));

また

var $parent = $(this).parent();
console.log($parent.is('li.first') || $parent.is('li.previous'))
于 2013-10-28T11:07:21.053 に答える