代码之家  ›  专栏  ›  技术社区  ›  Shagglez

将html()用作jQuery的属性

  •  1
  • Shagglez  · 技术社区  · 15 年前

    我正在尝试根据列表中的html内容选择一个元素。我想做些类似的事情 $('li[html="something"]')

    我当然可以使用 $.each() ,但在我看来,速度会慢很多。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Daniel Dyson    15 年前

    您可以尝试:contains()选择器

    http://api.jquery.com/contains-selector/

    $("li:contains('something')")
    

    要获得精确匹配(从上面的链接):

    $.expr[":"].contains = function(obj, index, meta, stack){
        return $.trim($(obj).html()) == meta[3];
    }
    

    $("li:contains('john')")
    

    这只会匹配 <li>John</li> ,不是 <li>A. John</li> <li>John 6</li> ... 只是 < !

        2
  •  0
  •   Mark Bell    15 年前
        3
  •  0
  •   Shagglez    15 年前

    $.extend($.expr[':'], {
        'hasHtml': function(elem, i, attr) {
            return ($(elem).html() == attr[3]);
        }
    });