3 文字未満のリスト項目を非表示にしたいのですが、どうすればよいですか? 以下のコードの何が問題になっていますか?
私は JavaScript/jQuery の初心者です。
jQuery().ready(function () {
if (jQuery('ol li').length < 3) {
jQuery(this).hide();
};
});
3 文字未満のリスト項目を非表示にしたいのですが、どうすればよいですか? 以下のコードの何が問題になっていますか?
私は JavaScript/jQuery の初心者です。
jQuery().ready(function () {
if (jQuery('ol li').length < 3) {
jQuery(this).hide();
};
});
あなたのコードは言っています
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()
内容が 3 文字未満の要素を除外し、それらを非表示にする必要があります。
$(function() {
$('ol li').filter(function() {
return $(this).text().length < 3 ;
}).hide();
});
$('ul li').each(function() {
if ($(this).text().length < 3)
$(this).hide();
});
これを試して:
$('ol li').filter(function(){ return $(this).text().length < 3; }).hide();
別の代替案は次のとおりです。
(質問コードスニペットで値文字ではなく要素を評価しているため)
if($('ol li').length < 3){ $(this).hide(); };
.html()
DOM要素のを取得してから、それを行う必要があると思います.length
。