我正在尝试使用 jquery 来定位一些动态表单变量。唯一的问题是它们包含方括号(它们是数组格式),我似乎无法让正则表达式正常工作,然后用正确的 jquery 格式替换字符串。
演示代码:
<div id="test[array][1]">wibble</div>
<div id="test[array][2]">wibble</div>
<div id="test[array][3]">WIBBLE</div>
<div id="test[array][4]">WIBBLE</div>
<button onclick="clicky();">test</button>
<script>
function clicky() {
//1 fail
$("#test[array][1]").html("moo");
//2 works
element = "#test\\[array\\]\\[2\\]";
console.log(element);
$(element).html("moo");
//3 fail
element = "#test[array][3]";
element.replace(/\[/g, "\\[");
element.replace(/\[/g, "\\]");
$(element).html("moo");
console.log(element);
//4 fail
element = "#test[array][4]";
element.replace(/\[.*?\]/g,'\\$1');
console.log(element);
$(element).html("moo");
};
</script>
Array[2] 正在工作,但我需要能够将随机生成的字符串转换为 jQuery 可接受的版本。它也让我感到困惑,因为 console.log 显示的元素只有 1 个反斜杠。
我传入了一个字符串,例如'#test [array] [1]',并且需要将其转换为jQuery 将接受作为标识符的格式。
任何指针将不胜感激!