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

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

if (($(this).attr('title') == 'Box a') || ($(this).attr('title') == 'Box b')) || ($(this).attr('title') == 'Box c')) { // do stuff } 

有没有办法缩短这个?

谢谢

使用CSS符号是可能的!

^符号。

$(element[title^='box']);

这将选择标题字段以box开头的所有element元素。

更新:

试试这个。

 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函数,它将使用第二个参数替换您作为parameter1发送的任何字符串。 在这里,我将“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 } 

希望这可以解决问题!