jquery count里面的元素ul - >长度?

时间:2010-07-01 14:18:57

标签: jquery

如果ul内部有多个li元素,则会发生某种情况,否则不会发生!

我做错了什么?

if ( $('#menu ul').length > 1 ) {

11 个答案:

答案 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)

    alert( "Size: " + $("li").size() ); 
    

    alert( "Size: " + $("li").length );
    

    您可以找到.size()方法here的一些示例。

    答案 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>