【问题标题】:Jquery select all elements with an innerHTML that starts with a string?Jquery选择所有以字符串开头的innerHTML元素?
【发布时间】:2011-04-07 13:38:43
【问题描述】:

我知道你可以使用 :contains 来获取 innerHTML 包含某个字符串的元素,但是我怎样才能获取 innerHTML 以字符串开头的元素呢?

【问题讨论】:

  • 你是指所有 firstChild 是文本节点的元素吗?

标签: javascript jquery html dom


【解决方案1】:

使用过滤器功能,您可以根据您喜欢的任何条件进行过滤:

var spans = $("span").filter(function(idx) {
   return this.innerHTML.indexOf(myString) == 0;
});

【讨论】:

  • 无需包装 :) this.innerHTML 有效,而且价格也便宜得多。
【解决方案2】:

你可以这样做:

<!doctype HTML>
<html>
<head>
<script type = "text/javascript" language = "JavaScript" src = "jquery-1.4.2.min.js"></script>
<script type = "text/javascript" language = "JavaScript">
var elems;
$(document).ready(function(){
    $("div").each(function(){
        var content = $(this).html();
        if (content.match(/asdf/)){
            alert(content);
        }
    });
});
</script>
</head>
<body>
<div>asdfaowhguiwehgiuh</div>
<div>asdfaowhguiwehgiuh</div>
<div>fdsaaowhguiwehgiuh</div>
<div>fdsaaowhguiwehgiuh</div>
<div>fdsaaowhguiwehgiuh</div>
<div>asdfaowhguiwehgiuh</div>
</body>
</html>

为了确定它是否在内容中..如果您想要前几个字符,您应该将内容拆分为这些字符并进行测试。

【讨论】:

    【解决方案3】:

    过滤器方法可以让你比较一个元素的内容,然后你可以做任何你喜欢的事情(在这种情况下,我做了addClass('selected'))。

    $('p').filter(function() {
      var searchString = 'Blue';
      return ($(this).html().substring(0, searchString.length) == searchString);
    }).addClass('selected');
    

    演示:

    http://jsbin.com/ironi/2

    【讨论】:

      【解决方案4】:

      我知道这是旧的,但如果有人正在寻找更好的答案,jQuery 自 v1.1.4 以来有一个 ":contains("text")" selector。

      示例 HTML:

      <p>Please reply above this line...</p>
      

      示例 jQuery 在 HTML 上方选择:

      $('p:contains("Please reply above this line")');
      

      【讨论】:

      • 我喜欢在旧帖子中找到这些更简单(无论如何)的解决方案。这个在语义上更容易理解。
      • 问题表明 OP 知道 :contains 但需要一些东西来根据 innerHTML 字符串的开头进行过滤。因此@joshperry 有正确的解决方案。
      • 简直是最好最干净的。谢谢!
      猜你喜欢
      • 2016-03-25
      • 1970-01-01
      • 2017-05-26
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 2022-12-24
      相关资源
      最近更新 更多