具有多个类的元素的jQuery选择器不起作用

时间:2014-11-18 08:35:34

标签: javascript jquery html

HTML:

<a class="someclass-random1 selected">The third div element.</a>
<p class="selected someclass-random2">This is some text in a paragraph.</p>

选择器:$('*[class^=someclass]')

此选择器适用于<a>,但不适用于<p>。 为什么会这样?

jsfiddle link

编辑:修正错字

2 个答案:

答案 0 :(得分:1)

表达式^=等同于“以...开头”,所以

$('*[class^=someclass]')

正在查找类名以someclass

开头的任何元素

因此a匹配且p不匹配

答案 1 :(得分:1)

尝试这种方式:

$.expr[':'].startingClass = function(obj){
  return ((/\bsomeclass/).test(obj.className));
};

$('*:startingClass').click(function(){
        $(this).hide();
});

demo

更多详情:see here


或者,您可以这样使用:

$('[class*=someclass]')

*会在任何地方搜索而不是从第一个开始。