【问题标题】::contain / start by:包含/开始
【发布时间】:2010-01-06 10:44:23
【问题描述】:

在 jQuery 中是否有一个“start by”过滤器,例如 :contain 但有一个字符串开始条件?

【问题讨论】:

    标签: jquery filter


    【解决方案1】:

    据我所知,您可以轻松实现自己的 jQuery 选择器:

    $.extend($.expr[':'], {
        startsWith: function(elem,match) {  
            return (elem.textContent || elem.innerText || "").indexOf(match[3]) == 0;
        }  
    });
    

    现在你可以像这样使用它了:

    $("p:startsWith(Hello)").css("color","red")
    

    【讨论】:

    • 谢谢,并且不区分大小写 : // live 不区分大小写 :contain $.extend($.expr[":"], { "startWith": function(elem, i, match, array ) { return (elem.textContent || elem.innerText || "").toLowerCase ().indexOf((match[3] || "").toLowerCase()) == 0; } });
    【解决方案2】:

    不,但您可以使用 filter 自己完成,正如脉冲建议的那样:

    $('a').filter(function(){
        return $(this).text().indexOf('start') == 0 }
    )
    

    您可能希望在此处使用正则表达式以忽略大小写或进行更高级的搜索:

    $('a').filter(function(){
        return $(this).text().match(/^start/i) }
    )
    

    【讨论】:

      【解决方案3】:

      我认为你可以使用

      indexOfjavascript 中的函数

      var str = "test string print";
      
      str.indexOf ( "test" ) returns 0
      

      str.indexOf ( "print" ) returns 12
      

      所以你可以检查 indexOf 函数的返回值,如果它是 0 则它在开始位置。

      【讨论】:

        【解决方案4】:
        Start With: ^=
        

        ^= 运算符将过滤属性以给定值开头的元素。

        更多信息在这里:

        http://www.bennadel.com/blog/1003-Cool-jQuery-Predicate-Selectors.htm

        jQuery Return elements where ID begins with a certain string

        【讨论】:

        • 这些选择器很有用,但它们是用于属性,而不是用于内容。
        猜你喜欢
        • 2016-05-04
        • 1970-01-01
        • 2014-05-21
        • 1970-01-01
        • 1970-01-01
        • 2014-05-14
        • 2015-05-31
        • 1970-01-01
        • 2012-09-10
        相关资源
        最近更新 更多