我試圖用jQuery來定位一些動態表單變量。唯一的問題是,它們包含方括號(他們是數組格式),我似乎無法得到正則表達式的工作,將正確地找到,然後用正確的格式替換字符串爲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>
陣列[2]的工作,但我需要能夠轉換一個隨機生成的字符串轉換成一個版本的jQuery那是可接受的。它也令我困惑,因爲console.log顯示只有1個反斜槓的元素。
我傳遞了一個字符串,例如'#test [array] [1]',並且需要將它轉換爲jQuery將接受的格式作爲標識符。
任何指針將不勝感激!
看看它對性能有什麼影響會很有趣,但是你可以使用選擇器'[id ='test [array] [1]']'而不是 –