6

3 文字未満のリスト項目を非表示にしたいのですが、どうすればよいですか? 以下のコードの何が問題になっていますか?

私は JavaScript/jQuery の初心者です。

jQuery().ready(function () {
    if (jQuery('ol li').length < 3) {
        jQuery(this).hide();
    };
});
4

5 に答える 5

13

あなたのコードは言っています

if (jQuery('ol li').length < 3) {  //If I have less than 3 li elements
    jQuery(this).hide();   //hide the window object
};

使いたいのはフィルター

$('ol li').filter( function(){ return $(this).text().length<3; } ).hide();

編集 - 私の投稿のコメントに基づいて: それがスパンタグで、その周りに他のデータがある可能性がある場合:

$('ol li span').filter( function(){ return $(this).text().length<3; } ).parent().hide()

スパンの例を実行するフィドル

于 2012-08-15T21:13:52.993 に答える
9

内容が 3 文字未満の要素を除外し、それらを非表示にする必要があります。

$(function() {
    $('ol li').filter(function() {
        return $(this).text().length < 3 ;
    }).hide();
});
于 2012-08-15T21:14:16.833 に答える
5
$('ul li').each(function() {
    if ($(this).text().length < 3)
        $(this).hide();
});

デモ

于 2012-08-15T21:15:33.960 に答える
2

これを試して:

$('ol li').filter(function(){ return $(this).text().length < 3; }).hide();

別の代替案は次のとおりです。

(質問コードスニペットで値文字ではなく要素を評価しているため)

if($('ol li').length < 3){ $(this).hide(); };
于 2012-08-15T21:18:28.317 に答える
1

.html()DOM要素のを取得してから、それを行う必要があると思います.length

于 2012-08-15T21:13:40.340 に答える