在jquery中使用filter/contains
不知道是否有人能帮忙 我正在尝试在jquery中使用过滤器 基本上,我试图找出一些代码,这些代码基本上完成了它需要做的事情在jquery中使用filter/contains,jquery,contains,Jquery,Contains,不知道是否有人能帮忙 我正在尝试在jquery中使用过滤器 基本上,我试图找出一些代码,这些代码基本上完成了它需要做的事情 if ($(".regionSubHeader span:contains('19-07-2014')").length > 0){ if($('.regionFilterLnk span:contains("Nights - 2")').length > 0 || $('.regionFilterLnk span:contains("Nights - 3")
if ($(".regionSubHeader span:contains('19-07-2014')").length > 0){
if($('.regionFilterLnk span:contains("Nights - 2")').length > 0 || $('.regionFilterLnk span:contains("Nights - 3")').length > 0 || $('.regionFilterLnk span:contains("Nights - 4")').length > 0 || $('.regionFilterLnk span:contains("Nights - 5")').length > 0){
$( '#thirtydaysmessage' ).show();
}
else{
$( '#thirtydaysmessage' ).hide();
}
问题是,如果Nights-21在跨度内,它在逻辑中将其注册为正值-我猜这是因为它使用了contains
我一直在读有关这方面的文章,soloution似乎在使用过滤器,但我不知道如何以这种方式执行一系列声明,例如这样的事情
$(".regionSubHeader span").filter(function() {
return $(this).text() === "Start date - 19-07-2014";
}).css("font-size", "60px");
但是我需要做的不是.css,而是上面提到的进一步检查(夜数检查),也许是一个函数
关于如何使用过滤器结果执行一系列语句,有什么建议吗
谢谢您可以创建一个通用函数,将选择器和匹配模式作为参数,并返回可能的匹配:
var getElemsContaining = function ( elem, pattern ) {
var matches = [];
$( elem ).each(function ( i, el ) {
var re = new RegExp( pattern, 'ig' );
if ( el.text().match( re )) {
links.push( el );
}
});
return links;
}
if( getElemsContaining( '.regionSubHeader span', '19-07-2014' ) && getElemsContaining( '.regionFilterLnk span', 'Nights - 2|Nights - 3|Nights - 4' ) ){
// Do lots of stuff here
}
您可以在jQuery中链接方法。非常感谢,我已经修改了这个,并且今天学到了很多关于regex和matching的知识!