如何在jquery中获取包含'map'的类名?

时间:2011-04-28 06:59:24

标签: jquery

有没有人如何通过jquery获取包含单词'map'的类名?我正在使用以下代码来获取带有map的类名(例如,class =“mapTest”),但如果该类包含2个名称(例如class =“abctest map test”)则不起作用。有谁知道我该如何解决?

     $(":input[class^=map]").each(function(index, element) {
        map_array.push(this.className);
    });

3 个答案:

答案 0 :(得分:7)

您是否尝试过包含选择器?它检查类名以查看它是否包含指定的子字符串。例如:

$('input[class*="map"]');

看看是否有效。

更多信息:http://api.jquery.com/attribute-contains-selector/

答案 1 :(得分:4)

你很接近,你需要*=,而不是^=

$(':input[class*="map"]').each(function(index, element) {
    map_array.push(this.className);
});

这是“属性包含”选择器(jQuery docsCSS spec)。


关于引号:如果您要搜索的值符合CSS identifier的定义(例如,您的map值),则它们是可选。如果您匹配的东西不符合该定义(例如任何带有空格的东西,或者以未转义的数字开头),则必需

由于引号永远不会错误,最好始终使用它们,但如果您知道自己正在寻找像{{{{ 1}}。

答案 2 :(得分:0)

请尝试使用~=。它会在多个类的情况下检查它是否包含文本。

$(":input[class~=map]").each(function(index, element) {
        map_array.push(this.className);
    });

编辑:抱歉,我应该澄清一下。这是为了在有多个类时进行匹配。 (如果你有class =“map blahmap”)它只匹配map,其中-*=将匹配两者 - 当你试图检查某些东西在多个类中是否有特定的类名时,这会更有用)