【问题标题】:Find html element which id starts with查找 id 以开头的 html 元素
【发布时间】:2011-01-18 21:58:51
【问题描述】:

我的问题是这样的:

我在多个页面中有 HTML 代码,在每个页面上我都使用了 JQgrid(jquery 网格)来显示一些数据。我知道在每个页面上,保存 JQgrid 的元素都被命名为“LIST_xxx”。现在我需要制作一个 javascript,在每个页面上使用该元素“LIST_XXXX”并做一些事情。我如何通过 ID 搜索元素,但只知道它的初始部分(ID 的,就像我之前提到的):

$('#list_[XXXX]')... --> The part surrounded by [] is variable on each page, i want to discriminate that.

我希望我说清楚了。谢谢。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    获取以某个 id/字符结尾的元素

    find('[id$=someid]')
    

    获取以某个id/字符开头的元素

    find('[id*=anotherid]')
    

    获取与某个id/字符匹配的元素

    find('[id^=id]')
    

    【讨论】:

      【解决方案2】:

      试试

      $('div[id^="list_"]')
      

      它应该可以工作

      【讨论】:

      • 该参考的布局比 jquery 文档好得多。
      • 这很好用,谢谢...我用它来找到一个以特定值结尾的 id,例如 if($('div[id$="'+val+'"]').length > 0) 执行某事;
      • 好吧,它适用于上述简单的控件 ID。如何使它适用于像我有这样的 ID 控件的场景 "txt_0_city" , "txt_1_city" , "txt_2_city" , "txt_3_city" 等等,我想要所有这些元素的计数,比如 "txt_*_city" "
      • @Rajiv 如果您可以控制 html,最好为每个元素添加一个像“city”这样的类。然后,您可以轻松地计算它们。
      • @Rajiv 如果您无法改进 html,请查看 api.jquery.com/multiple-attribute-selector - 您可以组合选择器。例如,$("span[id^='txt_'][id$='_city']")
      【解决方案3】:

      使用“属性以”选择器http://api.jquery.com/attribute-starts-with-selector/

      $("[id^=list_]")
      

      请注意,这是低效的。以标签名称为前缀,如果可能,从最近的父级下降。

      【讨论】:

        【解决方案4】:

        你需要使用attribute starts with selector,像这样:

        $('[id^=list_]').whatever()
        

        【讨论】:

        • 好吧,它适用于上述简单的控件 ID。如何使其适用于像我拥有具有此类 ID 的控件 "txt_0_city" 、 "txt_1_city" 、 "txt_2_city" 、 "txt_3_city" 等的场景,并且我希望计算所有此类元素的 ID 为 "txt_*_city" "
        • 嗨@Rajiv,欢迎来到stackoverflow。我已经回复了您评论的另一份副本。
        【解决方案5】:

        为该元素指定一个通用类名或您可以查询的其他属性。

        【讨论】:

        • 您好,感谢您的回答,您的建议的问题是可能有多个表包含 JQgrid,因此可能有:“LIST_customer”、“LIST_carrier”……等等。而且我只需要根据初始 ID 部分选择它们:“LIST_”。
        • 我理解,但是将它们全部设为 List 类对我来说似乎是一种更具可读性和描述性的方法。对于每个人来说,您始终可以在 jquery 中使用以选择器开头的选项,如其他答案所示。
        • @lidermin Yuriy 说的应该行得通。为什么不向您的控件添加一个类,例如“list”,因为您有 list_ 作为您的前缀。因此,当您选择该类时,它将获得每个控件。这将是最有效的方式。
        • 尤里的回答会奏效。您可以将相同的类(例如“ListsINeedToFind”)添加到所有“LIST_XXXX”元素,然后使用$('.ListsINeedToFind') 查找它们。
        • 有时需要有多个具有相同类但不同 ID 的元素。
        猜你喜欢
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多