簡體   English   中英

用於名稱屬性中帶有方括號的輸入的 jQuery 選擇器

[英]jQuery selector for inputs with square brackets in the name attribute

我試圖選擇這個在 name 屬性中有方括號的元素:

<input type="text" name="inputName[]" value="someValue">

我試過這個(這不起作用):

$('input[inputName[]=someValue]')

這也不是:

$('input[inputName&#91;&#93;=someValue]')

或這個:

$('input["inputName[]"=someValue]')

編輯:正如你們中的一些人指出的那樣, $('input[inputName=someValue]')永遠不會工作。 我想做的是: $('input[name=inputName][value=someValue]') (但在名稱屬性中使用[] )。

根據jQuery 文檔,試試這個:

$('input[inputName\\[\\]=someValue]')

[編輯] 但是,我不確定這是否適合您的選擇器的語法。 你可能想要:

$('input[name="inputName[]"][value="someValue"]')

您可以使用反斜杠在 jQuery 選擇器中引用“有趣”的字符:

$('#input\\[23\\]')

對於屬性值,您可以使用引號:

$('input[name="weirdName[23]"]')

現在,我對你的例子有點困惑; 你的 HTML 到底是什么樣子的? 特別是字符串“inputName”出現在哪里?

編輯固定的笨重; 謝謝@Dancrumb

屬性選擇器語法是[name=value] ,其中name是屬性名稱, value是屬性值。

因此,如果要選擇屬性nameinputName[]所有input元素:

$('input[name="inputName[]"]')

如果您想檢查兩個屬性(此處: namevalue ):

$('input[name="inputName[]"][value=someValue]')

如果選擇器包含在變量中,下面的代碼可能會有所幫助:

selector_name = $this.attr('name');
//selector_name = users[0][first:name]

escaped_selector_name = selector_name.replace(/(:|\.|\[|\])/g,'\\$1');
//escaped_selector_name = users\\[0\\]\\[first\\:name\\]

在這種情況下,我們用雙反斜杠作為所有特殊字符的前綴。

只需用不同的引號將其分開:

<input name="myName[1][data]" value="myValue">

查詢:

var value = $('input[name="myName[1][data]"]').val();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM