【发布时间】:2010-01-06 10:44:23
【问题描述】:
在 jQuery 中是否有一个“start by”过滤器,例如 :contain 但有一个字符串开始条件?
【问题讨论】:
在 jQuery 中是否有一个“start by”过滤器,例如 :contain 但有一个字符串开始条件?
【问题讨论】:
据我所知,您可以轻松实现自己的 jQuery 选择器:
$.extend($.expr[':'], {
startsWith: function(elem,match) {
return (elem.textContent || elem.innerText || "").indexOf(match[3]) == 0;
}
});
现在你可以像这样使用它了:
$("p:startsWith(Hello)").css("color","red")
【讨论】:
不,但您可以使用 filter 自己完成,正如脉冲建议的那样:
$('a').filter(function(){
return $(this).text().indexOf('start') == 0 }
)
您可能希望在此处使用正则表达式以忽略大小写或进行更高级的搜索:
$('a').filter(function(){
return $(this).text().match(/^start/i) }
)
【讨论】:
我认为你可以使用
indexOfjavascript 中的函数
var str = "test string print";
str.indexOf ( "test" ) returns 0
和
str.indexOf ( "print" ) returns 12
所以你可以检查 indexOf 函数的返回值,如果它是 0 则它在开始位置。
【讨论】:
Start With: ^=
^= 运算符将过滤属性以给定值开头的元素。
更多信息在这里:
http://www.bennadel.com/blog/1003-Cool-jQuery-Predicate-Selectors.htm
jQuery Return elements where ID begins with a certain string
【讨论】: