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?搜索代码会错误地将元素与titlea
匹配,因为它只是去除框的前缀,而不是测试前缀。