jquery转义方括号来选择元素

考虑一个输入元素

 

这里输入字段是动态生成的。 我需要选择那个字段。 所以我用过,

 alert($('#meta[152][value]').val()); 

但这似乎无效。 搜索后我发现,“方括号”需要像#meta\\[152\\]\\[value\\]一样进行转义

那怎么办呢? 我目前使用此代码,

 var id = "#meta[152][value]" // (I get this value by another method) I need the escaping to be done here. So that i can use as 

/ **我需要使用正则表达式转换id的值,替换或任何其他方法来获取#meta \ [152 \] \ [value \]而不是手动** /

 alert($(id).val()); 

您的建议会有所帮助!

以下应该有效:

 alert($('#meta\[152\]\[value\]').val()); 

要么

 var id = "#meta\[152\]\[value\]"; alert($(id).val()); 

工作实例

转换function:

 function ConvertValue(id) { var test = id.replace(/[[]/g,'\\\\['); return "#" + test.replace(/]/g,'\\\\]'); } 

转换示例

如果你在没有逃避的情况下感觉更舒服,你也可以使用属性选择器并搜索具有该id的元素,如下所示: $("[id='meta[152][value]']")

最简单的方法就是使用常规的getElementById,它不需要转义:

 document.getElementById("meta[152][value]").value; 

这个shoudl为你工作,你几乎拥有它:

  $(document).ready(function() { var id = "#meta\\[152\\]\\[value\\]"; alert($(id).val()); }); 

嗯,只需将转义值放在字符串中即可。

 var id = "#meta\\[152\\]\\[value\\]"; 

看到它在这里工作