0

私はそれをフィルタリングすることで知っています

$("div:parent")

しかし、トラバースを使用して要素が親であるかどうかを確認するにはどうすればよいですか?

4

3 に答える 3

2

に満足できず$('div:parent')、jQueryトラバースメソッドを明示的に呼び出したい場合は、次を使用できます。

$('div').filter(function(){return $(this).children().length})

必要に応じて、さらに遅くしたり、読みにくくしたりすることを提案する場合があります。

これは、childNodesを使用する場合とまったく同じではないことに注意してください。テキストを含むコンテンツがないかどうかを確認したい場合は、

$('div').filter(function(){return $(this).contents().length})
于 2012-12-01T16:11:24.710 に答える
1

:hasを使用してみてください

$('div:has(*)')

または.has()

$('div').has('*')

内容があるかどうかを確認したい場合は、:emptyセレクターを使用してください

$('div:empty')
于 2012-12-01T16:16:31.113 に答える
0

使用したいのは:empty http://api.jquery.com/empty-selector/

ただし、空の中に空白がある場合は、それらを空とは見なさないように注意してください。だからあなたは別のセレクター/式を作ることができます

作業デモ: http: //jsfiddle.net/fedmich/7WdmD/

$(function() {
    $.extend($.expr[':'],{
    empty_noWhiteSpace: function(a,i,m){
        return $.trim(a.innerHTML) === '';
    }
});

    $('ul li:empty_noWhiteSpace').addClass('is_empty');
});?

あなたがこのようなリストアイテムを持っているとき

  •     </li>
        <li>
        not empty
        </li>
    

    その最初のliアイテムには改行があるため、「:empty」タグではないと見なされます。

  • 于 2012-12-02T00:51:56.443 に答える