Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在属性与id匹配的地方使用jquery选择器_Jquery - Fatal编程技术网

在属性与id匹配的地方使用jquery选择器

在属性与id匹配的地方使用jquery选择器,jquery,Jquery,我分配了很多id,如下所示: $(".split").each(function(index) { $(this).attr("id", index); }); $("#id="+c) 随后,我尝试了如下选择器: $(".split").each(function(index) { $(this).attr("id", index); }); $("#id="+c) 但它会抛出以下错误: Error: Syntax error, unrecognized

我分配了很多id,如下所示:

$(".split").each(function(index) {
       $(this).attr("id", index);
 });
$("#id="+c)
随后,我尝试了如下选择器:

$(".split").each(function(index) {
       $(this).attr("id", index);
 });
$("#id="+c)
但它会抛出以下错误:

Error: Syntax error, unrecognized expression: #id=1
如何选择具有特定编号的id?

您只需要符号:


将ID选择器替换为以下内容:

$+c

换句话说,在表达式中删除id=,因为选择元素的id的正确方法是在其前面加一个哈希符号

但是我建议不要使用数字作为HTML元素的ID,因为这是一个无效的CSS选择器。我的建议是在它前面加一个有效的标识符,以便更好地理解呈现的HTML,假设您正在从(比如)从服务动态检索的项目列表中创建唯一的ID。比如说,

$(".split").each(function(index) {
   $(this).attr("id", "row_" + index.toString());
});
然后您将选择以下选项:

$("#row_" + c)
例如,看起来像这样的元素忽略了我使用div的事实:

<div id="row_0">...</div> <div id="row_1">...</div> <div id="row_2">...</div> <div id="row_3">...</div> <div id="row_4">...</div> 更新:我最初说过数字是无效的CSS选择器@下面的acdcjunior发布了一个链接,使我的原始声明无效。我的观点是,您应该避免使用数字命名项目,因为:

它们不能使代码可读。 ID对于整个HTML文档必须是唯一的。如果HTML文档中有另一个部分也使用数字命名重复项,则会遇到命名冲突。在这种情况下,如上所述,为它们添加前缀,以便它们在使用它们的上下文中有意义。 请尝试以下代码:-


$+数据

越位注意事项是,当使用数字id时,您将无法在CSS中使用id选择器,尽管在脚本代码中仍然可以。请记住,有效的id不能以数字开头,因此不能以数字开头。@iblamefish-HTML5规范说id可以以数字开头,也可以以数字开头,它们只需转义:document.queryselectoral'\\31'获取id=1。1在jQuery中工作,因为Sizzle优化了它。。1是一个无效的CSS选择器,是的,但它可以作为\31转义,并且Sizzle/jQuery支持1。因此,您认为这是一个无效的CSS选择器,充其量是不准确的。谢谢您的反馈。但为了可读性,我坚持最初的说法,即用数字来命名事物不是一个好主意。仅仅因为你可以,并不意味着你应该。建议不要使用数字ID是没有问题的。我认为重要的是要注意的是,你不是在暗示,你是在说数字是无效的标识符,这并不意味着你的答案丢失了,因为它还有其他优点,但具体的信息是不正确的。这并不能提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。@Joetje50请不要这么快做出判断。这是一个正确的答案。@hvd好的,我对给出的原因感到抱歉,但是这个答案看起来更像是一个评论而不是一个答案。答案,尤其是当回答者有25分钟的时间时,应该有比“请试试这个”更进一步的解释。当你说“试试这个”的时候,你是在要求提问者做点什么,看看这是否有效,而答案通常只是简单地说“这就是解决方案”。-虽然原因确实不完全适用于这种情况,但我仍然认为这个答案只是一个评论,而不是一个完整的答案。@Joetje50当然,这是一个公平的评论。谢谢你的澄清。我下面的那个人也给出了同样的答案,为什么没有人评论他的ans呢@乔伊50