Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何选择属性以开头的所有元素_Jquery - Fatal编程技术网

Jquery 如何选择属性以开头的所有元素

Jquery 如何选择属性以开头的所有元素,jquery,Jquery,我试图选择所有以“框”开头的元素。这是我现有的代码: if (($(this).attr('title') == 'Box a') || ($(this).attr('title') == 'Box b')) || ($(this).attr('title') == 'Box c')) { // do stuff } 有没有办法缩短这个时间 感谢使用CSS符号,这是可能的 ^符号 $(元素[title^='box']) 选择标题字段以框开始的所有元素元素 更新: 试试这个 var regEx

我试图选择所有以“框”开头的元素。这是我现有的代码:

if (($(this).attr('title') == 'Box a') || ($(this).attr('title') == 'Box b')) || ($(this).attr('title') == 'Box c')) {
// do stuff
 }
有没有办法缩短这个时间


感谢使用CSS符号,这是可能的

^
符号

$(元素[title^='box'])

选择标题字段以
框开始的所有
元素
元素

更新:

试试这个

var regEx = /^Box/;

if(regEx.test($(this).attr('title'))){

}
您可以使用:

$('[title^=box]')
或者,为了简化搜索,您可以这样做

var title = $(this).attr('title').replace("Box ", "");
if(['a', 'b', 'c'].indexOf(title) != -1)
{
  //do stuff
}
说明:

  • replace
    是一个JS函数,它将用第二个参数替换作为参数1发送的任何字符串。在这里,我将“Box”(包括空格)替换为“”,实际地从字符串中删除并关闭它
  • ['a','b','c']
    是一个数组。要在该数组中搜索,可以
    indexOf
    。如果函数返回
    -1
    ,则表示标题中没有a、b或c
但是,如果您只想检查元素的标题是否以“Box”开头,您可以简单地执行以下操作:

 var title = $(this).attr('title').split(" ")[0]; //this would give you "Box" alone
 if(title.indexOf("Box") != -1)
 {
      //do stuff
 }

希望这能把事情弄清楚

啊,是的,但是如果我想使用(这个),它在那个语法中是如何工作的?那可能会工作!但是你能告诉我你为什么用替换吗?我在jQuery上查找了它,但找不到该函数的文档。为什么结果会是-1?搜索代码会错误地将元素与title
a
匹配,因为它只是去除
框的前缀,而不是测试前缀。