jQuery - 当 id 是数组类型表示法时,ID 选择器需要帮助

发布于 2024-10-04 02:43:12 字数 276 浏览 2 评论 0原文

我有一个输入元素定义如下:

<input type="checkbox" name="custom_15[1]" id="custom_15[1]" value="1" />

当我尝试使用 $("#custom_15[1]") 选择器时,它不起作用。而 document.getElementById("custom_15[1]") 确实有效。

我在这里做错了什么?

谢谢你!

I have an input element defined as follows:

<input type="checkbox" name="custom_15[1]" id="custom_15[1]" value="1" />

When I tried with $("#custom_15[1]") selector, it didn't work. Whereas, document.getElementById("custom_15[1]") did work.

What am I doing wrong here?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

╰沐子 2024-10-11 02:43:13

首先,id 属性不应包含方括号。这只是无效的。它可以包含字母、数字、下划线、连字符、冒号和点。

在这个问题的答案中,有一个提示,jquery 甚至有点和冒号的问题:

HTML 中 id 属性的有效值是什么?

因此,请尝试切换到有效的 id。如果不能,请使用正确的转义:

$("#custom_15\\[1\\]")

First off, an id attribute should not contain square brackets. It's just not valid. It can contain letters, numbers, underscores, hyphens, colons and dots.

In the answer to this question there's a hint that jquery even has problems with dots and colons:

What are valid values for the id attribute in HTML?

So try to switch to valid ids. If you can't, use proper escaping:

$("#custom_15\\[1\\]")
耀眼的星火 2024-10-11 02:43:13

确实,不能有方括号。

“name”和“id”字段必须具有相同的名称吗?

更糟糕的是,你总是可以在你的输入中添加一个独特的类,并通过它在 JS 中找到它。 ie

<input type="checkbox" name="custom_15[1]" class="test" id="custom_15[1]" value="1" />

然后在你的 JS 中使用这个

$(".test")

希望这有帮助。

True, you can't have square brackets.

Do you have to have the same name for the "name" and "id" fields?

Worse has to come you can always add a unique class to your input and find it in JS through that. ie

<input type="checkbox" name="custom_15[1]" class="test" id="custom_15[1]" value="1" />

And then in your JS use this

$(".test")

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文