在jquery中使用filter/contains

在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")

不知道是否有人能帮忙

我正在尝试在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在跨度内,它在逻辑中将其注册为正值-我猜这是因为它使用了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的知识!