[javascript] 이름 속성에 대괄호가있는 입력을위한 jQuery 선택기

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]where name속성 이름이며 value속성 값입니다.

따라서 input속성 name값이있는 모든 요소 를 선택하려면 다음을 수행하십시오 inputName[].

$('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">

jQuery :

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


답변