如何在" .length"中使用动态选择器。属性?

时间:2017-09-12 17:08:24

标签: javascript jquery

我有这个HTML代码:

<ul class="bookings-layout3">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
<ul>

这个JS代码用于返回ul的长度(在本例中为4),但选择器是硬编码的:

function getLength() {
    console.log($(".posts-layout5 li").length);
}

但我想通过输入目标类的参数而不仅仅是硬编码来使函数可重用,如下所示:

function getLength(ul_to_target) {
    console.log($(".{ul_to_target} li").length);
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

如果ul_to_target只是一个字符串,您可以使用+运算符来连接字符串。例如:

console.log($("." + ul_to_target + " li").length);

虽然变量名称在这方面可能会产生误导。 用法意味着它是一个字符串,但名称意味着它是一个元素。如果ul_to_target是一个实际元素(或包装元素的jQuery对象),并且您想要专门查询该元素的后代以查找li元素,则它看起来像这样:

console.log($("li", ul_to_target).length);

变量名称很重要。也许它应该像ul_class那样?