jquery选择器不使用

我正在使用jQuery来操作osCommerce实例中的表单数据,而我在选择一些元素时遇到了麻烦。

该脚本使用id product_description [N]生成textareas,N为1,2,3 …

问题是在其中使用带有[]的id值会使jQuery(甚至是常规脚本)不选择元素而我无法使用它。

我尝试将id切换为下划线,操纵信息然后将其更改回[]但我甚至无法做到:

$('#product_description[1]').attr('id','products_description_1'); 

有没有办法让jQuery选择像这样的东西$(’#some [2]’)。function …?

如果没有,如果有另一种方式我可以更改ID值然后它没关系,因为我可以像往常一样工作然后将其更改回[]以便php识别该字段

是的,我知道,我可以用类别的另一种方式选择textarea,但由于te页面中有很多texareas,我需要一个唯一的名称,这将需要编辑我不想要的osCommerce脚本。 我计划将我的JS贡献给oscommerce社区,而另一个人只需添加一个.js很容易,但如果他们必须编辑一个php文件让javascript工作,那么对于新手来说可能太可怕了,或者对于某个人来说可能是不可能的那已经编辑过了。

非常感谢

试试这个:

 $('#product_description\\[1\\]') 

请注意,虽然这可能有效,但括号字符在HTML5之前的ID中无效(尽管它们可以在类中使用)。

 $("#product_description\\[1\\]").attr("id", "products_description_1"); 

是正确的代码,请查看jQuery.com上的“ ID-Selector ”

[]字符不是HTML4中的有效ID字符。 如果使用它们,请不要期望在不同浏览器中获得一致的结果


编辑:

如果您无法控制服务器端ID的格式,则可以执行以下操作:

 $("*[id='product_description[1]']") 

但是在不支持querySelectorAll浏览器中它会非常慢。

(请注意,由于值周围的引号,您不需要\\ here。)