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\\]";
看到它在这里工作