【问题标题】:select some element by ID in jQuery [duplicate]在jQuery中按ID选择一些元素[重复]
【发布时间】:2011-11-09 17:50:49
【问题描述】:

可能重复:
Find all elements on a page whose element ID contains a certain text using jQuery

我需要选择 ID 中包含“用户”字样的所有元素。

在属性中,我将通过 $= 来完成,但如何通过元素 ID 来完成?

【问题讨论】:

标签: javascript jquery


【解决方案1】:

您可以使用*= 选择器来做到这一点:

$('[id*="user"]').doStuff();

【讨论】:

  • id 属性不能有空格。 ~= 属性选择由空格分隔的单词。您需要使用*=
  • 另外,属性选择器前面的* 是多余的。
【解决方案2】:

$('[id*="user"]') 这样的属性选择器将匹配id 为'user'、'users'、'superuser'、'abusers'、'user-details'等的元素。

如果您的 ID 结构更严格,并且只想匹配“用户”和“超级用户”等内容,您可以尝试以下操作:

var userWordTest = RegExp("\\b" + "user" + "\\b");
$('[id]').filter(function() { return userWordTest.test(this.id); })

【讨论】:

    【解决方案3】:

    使用带有 id 属性的命名属性选择器的contains 变体。

    $('[id*="user"]')...
    

    【讨论】:

      【解决方案4】:

      你想要这样的东西

      $('[id*="user"]')

      选择所有元素

      [idid

      *="user" 包含用户

      示例http://jsfiddle.net/jasongennaro/QXGen/2/

      这里是关于包含选择器的属性的更多信息:http://api.jquery.com/attribute-contains-selector/

      【讨论】:

      • 前导 * 是多余的。所有 CSS 选择器都是从右到左解析的,这意味着属性选择器首先被解释,因此* 只会在选择器获取所需的所有元素后减慢选择器的速度。
      • 谢谢@Chris。上面注明和编辑。
      猜你喜欢
      • 2015-04-01
      • 2013-03-15
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      相关资源
      最近更新 更多