想知道是否有人可以提供帮助;
我试图在jquery中使用过滤器。
基本上我试图弄清楚一些代码几乎可以做它需要做的事情。
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在跨度中它在逻辑中将其注册为正数 - 我猜测这是因为它使用了包含。
我一直在阅读这个问题,而且解决方案似乎是使用过滤器,但是我无法理解如何以这种方式执行一堆语句,例如像这样的事情;
$(".regionSubHeader span").filter(function() {
return $(this).text() === "Start date - 19-07-2014";
}).css("font-size", "60px");
但不是.css我需要进行如上所述的进一步检查(夜间检查次数),也许是一个功能?
关于如何使用过滤器结果执行一堆语句的任何指针?
由于
答案 0 :(得分:0)
您可以创建一个泛型函数,它将选择器和匹配模式作为参数并返回可能的匹配项:
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
}