jquery转义方括号来选择元素

Aak*_*thy 4 javascript regex jquery escaping jquery-selectors

考虑一个输入元素

<input id="meta[152][value]" type="text" />
Run Code Online (Sandbox Code Playgroud)

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

alert($('#meta[152][value]').val());
Run Code Online (Sandbox Code Playgroud)

但这似乎无效.搜索后我发现,"方括号"需要像那样被转义#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
Run Code Online (Sandbox Code Playgroud)

/**我需要id的值,以使用正则表达式进行转义,替换或任何其它方法以获得#meta\[152 \]\[值\]而不是手动**/

alert($(id).val());
Run Code Online (Sandbox Code Playgroud)

您的建议会有所帮助!

Rio*_*ams 6

以下应该有效:

alert($('#meta\[152\]\[value\]').val());
Run Code Online (Sandbox Code Playgroud)

要么

var id = "#meta\[152\]\[value\]";
alert($(id).val());
Run Code Online (Sandbox Code Playgroud)

工作实例

转换功能:

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

转换示例


amo*_*era 6

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