计算具有特定 class 的 DIV,其中 class 名称是一个变量

Count DIVs with specific class where class name is a variable

我对这段代码有一些问题...

$("select#kronologia option").each(function() {
    var classname=$(this).val();
    alert($("article."+classname).length);
});

错误:语法错误,无法识别的表达式:文章。

我想计算具有特定 class 的 div,其中 class 名称来自 select 字段。我有语法错误。见上文...

如果我改变这一行

var classname=$(this).val();

至此

var classname="2013";

脚本没问题。

任何帮助都会很棒...

尝试将 var classname=$(this).val(); 更改为 var classname=str($(this).val());

那里有什么文章?是class前缀还是id前缀

$("select#kronologia option").each(function() {
    var classname=$(this).val();
    alert($(".article"+classname).length);
});

$("select#kronologia option").each(function() {
    var classname=$(this).val();
    alert($("#article"+classname).length);
});

当您使用 JQuery 搜索 Class 时,应该有前缀“.”一个基本规则。 您已经完成了所有工作,只需附加前缀即可使用 class 名称进行搜索,如下所示。

alert($(".article"+classname).length);

http://codepen.io/JayPatel758/pen/wdpavo

这是更新后的 JSFiddle

问题是您的第一个值为空,因此 jquery 将尝试查找匹配 article. 的元素(空选项值),这确实是一个不正确的表达式。正如您在 fiddle 中看到的那样,当值为空时,它会被跳过,您的脚本将运行。当然,您可以根据自己的需要更改空值的行为。

$('select#kronologia').on('change', function(e) {
    $(this).find('option').each(function() {
        var classname = $(this).val();

        if (classname === '') {
            return true;
        }

        alert($('article.'+classname).length);
    });
});