如果ul
内部有多个li
元素,则会发生某种情况,否则不会发生!
我做错了什么?
if ( $('#menu ul').length > 1 ) {
答案 0 :(得分:70)
你必须计算li元素而不是ul元素:
if ( $('#menu ul li').length > 1 ) {
如果您需要每个包含至少两个LI元素的UL元素,请使用过滤函数:
$('#menu ul').filter(function(){ return $(this).children("li").length > 1 })
你也可以在你的条件下使用它:
if ( $('#menu ul').filter(function(){ return $(this).children("li").length > 1 }).length) {
答案 1 :(得分:26)
正确的语法是
$('ul#menu li').length
答案 2 :(得分:11)
alert( "Size: " + $( "li" ).size() );
alert( "Size: " + $( "li" ).length );
.size()和.length都返回项目数。但不推荐使用size()方法(JQ 1.8)。 .length属性可以用来代替size()。
你也可以使用
alert($("ul").children().length);
答案 3 :(得分:8)
<强> Working jsFiddle 强>
请使用.size()函数代替.length,并在选择器中指定li标记。
更改您的代码,如。
if ( $('#menu ul li').size() > 1 ) {
答案 4 :(得分:5)
使用$('ul#menu').children('li').length
.size()而不是.length也可以使用
答案 5 :(得分:2)
另一种计算列表元素数量的方法:
java.lang.ClassNotFoundException:
org.tizen.ncli.subcommands.tv.SecureCmdVer2_0_device
var num = $("#menu").find("li").length;
if (num > 1) {
console.log(num);
}
答案 6 :(得分:1)
进行以下更改:
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 23
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
sourceSets {
integTest {
java.srcDir file('src/integTest/java')
resources.srcDir file('src/integTest/resources')
}
}
configurations {
integTestCompile.extendsFrom testCompile
integTestRuntime.extendsFrom testRuntime
}
task integTest(type: Test) {
group = LifecycleBasePlugin.VERIFICATION_GROUP
description = 'Runs the integration tests.'
testClassesDirs = sourceSets.integTest.output.classesDirs
classpath = sourceSets.integTest.runtimeClasspath
}
check.dependsOn integTest
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
integTestImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
答案 7 :(得分:1)
警告:以上答案大部分时间都有效!
在jQuery 3.3.1版中(尚未测试其他版本)
$("#myList li").length;
仅在列表项没有换行时有效。如果您的项目包含在列表中,则此代码将计算占用的行数,而不是
$("#myList").children().length;
获取列表中
答案 8 :(得分:1)
('#menu li').length;
无需提及 ul
,因为 id
是一个独特的元素。
答案 9 :(得分:0)
答案 10 :(得分:0)
如果您有ul的dom对象,请使用以下内容。
$('#my_ul').children().length;
一个简单的例子
window.setInterval(function() {
let ul = $('#ul'); // Get the ul
let length = ul.children().length; // Count of the child nodes.
// The show!
ul.append('<li>Item ' + (length + 1) + '</li>');
if (5 <= length) {
ul.empty();
length = -1;
}
$('#ul_length').text(length + 1);
}, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h4>Count of the child nodes: <span id='ul_length'>0</span></h4>
<ul id="ul"></ul>