如何使用 ID 变量在 jQuery 中选择元素?

Posted

技术标签:

【中文标题】如何使用 ID 变量在 jQuery 中选择元素?【英文标题】:How do I select an element in jQuery by using a variable for the ID? 【发布时间】:2010-10-19 03:26:17 【问题描述】:

例如下面选择一个id="2"的划​​分:

row = $("body").find("#2");

我该如何做这样的事情:

row_id = 5;
row = $("body").find(row_id);

上述语法产生错误。我在这里检查了 jQuery 文档和答案,但没有成功。

【问题讨论】:

哇,五个答案一模一样…… 【参考方案1】:
row = $("body").find('#' + row_id);

更重要的是,做额外的 body.find 对性能没有影响。正确的做法很简单:

row = $('#' + row_id);

【讨论】:

【参考方案2】:

最短的方法是:

$("#" + row_id)

将搜索限制在正文中没有任何好处。

此外,您应该考虑将您的 ids 重命名为更有意义的名称(并且根据 Paolo 的回答符合 html),特别是如果您还有另一组数据也需要命名。

【讨论】:

我喜欢简洁。我刚刚将它与 qTip2 工具提示一起使用,效果很好。我有点好奇生成大量这些“及时”的性能损失是什么,例如响应用户输入。【参考方案3】:

通过ID查找时不需要做$('body').find();;没有性能提升。

另请注意,以数字开头的 ID 是not valid HTML:

ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 (" _")、冒号 (":") 和句点 (".")。

【讨论】:

【参考方案4】:

你可以这样做:

row_id = 5;
row = $("body").find('#'+row_id);

【讨论】:

【参考方案5】:

你的代码有两个问题

    要按 ID 查找元素,您必须为其添加前缀“#” 当需要字符串时,您尝试将数字传递给查找函数(传递“#”+ 5 会解决此问题,因为它会先将 5 转换为“5”)

【讨论】:

【参考方案6】:

我对 jQuery 了解不多,但试试这个:

row_id = "#5";
row = $("body").find(row_id);

编辑:当然,如果变量是数字,你必须在前面加上"#"

row_id = 5
row = $("body").find("#"+row_id);

【讨论】:

以上是关于如何使用 ID 变量在 jQuery 中选择元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何扩展存储在变量中的 jQuery 选择器?

jQuery:DOM元素变量的链选择器

Jquery通过'data-id'选择元素[重复]

如何选择一个 ASP.NET 服务器控件传递保存在 jQuery 中的 JS 变量中的 id?

jquery如何选择变量中的元素

jquery选择器中加变量参数