JQuery:查找其类包含变量值的元素

时间:2015-07-12 12:48:00

标签: javascript jquery

我现在搜索得很高,但我无法弄清楚如何让它发挥作用:

我需要获取其类名包含我使用变量传递的数字的元素。

为了更好地理解:这是在"点击"画廊上的活动。每当单击img时,我搜索src,查看该字符串包含的数字,然后想要找到其类包含相同数字的匹配p。所以我可以将匹配的文本操作到当前显示的图片(因为我使用的插件剥离了任何id或类,我只能通过其源名称识别图片)。

到目前为止,如果我直接将数字作为字符串输入,它确实有用。像这样:

var team_t = $(this).find("img").attr("src");

    for(n = 1; n <=6; n++ ){

            if(team_t.indexOf(n) != -1)
            {   
                $('#text_content').find("p[class*='3']").css("background-color", "red");

            }
    }

但不是&#34; 3&#34;我希望它能得到变量n所包含的数字。我试过这个,但它不起作用:

$('#text_content').find("p[class*=' + n + ']").css("background-color", "red");

实际上它并没有与我试图传递的任何变量一起工作。我也看到并尝试过使用contains()或hasClass()等的示例..但对我来说没什么用。我虽然对语法并不十分熟悉。

我如何编写这个以便将variabel作为字符串?

如果我发出警报(n),它会显示正确的号码,这样就不是问题了。

1 个答案:

答案 0 :(得分:6)

你使用字符串连接处于正确的轨道上,你只是没有完全在字符串之外:

$('#text_content').find("p[class*='" + n + "']").css("background-color", "red");
// Change is here -----------------^- and -^

在你的尝试中,+ n +仍然在外部引号中,因此在选择器中逐字使用(使其失败)。

那就是说,如果你对DOM结构有任何控制(但听起来你可能没有),那么可能有更好的方法。例如,您可以在元素上放置data-*属性,为p元素提供适当的选择器(可能甚至是id,但这只是一个选项。)

您可能还想在找到索引后结束循环,方法是在设置红色线后的行上放置break;

最后:您可能希望使用类添加红色,而不是将演示文稿混合到JavaScript代码中。