有没有人如何通过jquery获取包含单词'map'的类名?我正在使用以下代码来获取带有map的类名(例如,class =“mapTest”),但如果该类包含2个名称(例如class =“abctest map test”)则不起作用。有谁知道我该如何解决?
$(":input[class^=map]").each(function(index, element) {
map_array.push(this.className);
});
答案 0 :(得分:7)
您是否尝试过包含选择器?它检查类名以查看它是否包含指定的子字符串。例如:
$('input[class*="map"]');
看看是否有效。
答案 1 :(得分:4)
你很接近,你需要*=
,而不是^=
:
$(':input[class*="map"]').each(function(index, element) {
map_array.push(this.className);
});
这是“属性包含”选择器(jQuery docs,CSS spec)。
关于引号:如果您要搜索的值符合CSS identifier的定义(例如,您的map
值),则它们是可选。如果您匹配的东西不符合该定义(例如任何带有空格的东西,或者以未转义的数字开头),则必需。
由于引号永远不会错误,最好始终使用它们,但如果您知道自己正在寻找像{{{{ 1}}。
答案 2 :(得分:0)
请尝试使用~=
。它会在多个类的情况下检查它是否包含文本。
$(":input[class~=map]").each(function(index, element) {
map_array.push(this.className);
});
编辑:抱歉,我应该澄清一下。这是为了在有多个类时进行匹配。 (如果你有class =“map blahmap”)它只匹配map,其中-*=
将匹配两者 - 当你试图检查某些东西在多个类中是否有特定的类名时,这会更有用)