ID属性有围绕它的括号吗?

时间:2013-04-20 23:44:21

标签: javascript jquery greasemonkey html

我正在添加一个Greasemonkey脚本来为我工作的页面增添趣味,但我遇到了问题。我想在表单字段中添加默认值,所以每次填写表单时我都不必添加相同的值。

查看表单上的idname属性时,它们被括号括起来! 例如:

<input id="[[FormGen]]Contact" type="text" 
    value="" name="[[FormGen]]Contact">
</input>


现在,我无法访问任何服务器端代码,我正在从源代码中查看它。需要注意的一点是,这种形式完美无缺。我很好奇这些括号可能做什么或意味着什么,但这不是我的根本问题。

根本问题是,当我使用jQuery获取值时,它无法识别我使用的id。换句话说,这不起作用:

("#[[FormGen]]Contact").val("test");

还有一点需要注意 - 表格总共有20个字段。所有ID和Name属性值均以[[FormGen]]开头。

3 个答案:

答案 0 :(得分:2)

你可以逃脱它们:

$('#\\[\\[FormGen\\]\\]Contact')

或者使用这样的东西:

$(document.getElementById('[[FormGen]]Contact'))

答案 1 :(得分:0)

如果它们都以[[FormGen]]开头,那意味着您可以通过id属性的其余部分选择它们:

$('input[id$="Contact"]')

答案 2 :(得分:0)

如果您的标记包含许多带有特殊字符的ID,请考虑使用此解决方案 jQuery's FAQ。它会逃脱jQuery所需的所有字符。

我喜欢他们建议的nullsafe版本:

function jqid (id) {
  return (!id) ? null : '#' + id.replace(/(:|\.|\[|\]|,)/g, '\\$1');
}