유형 및 이름 별 입력 대상 (선택기)


132

페이지의 일부 입력은 아니지만 일부 입력의 경우 일부 입력 상자 입력을 숨겨진 입력으로 변경해야합니다.

<input type="checkbox" name="ProductCode"value="396P4"> 
<input type="checkbox" name="ProductCode"value="401P4"> 
<input type="checkbox" name="ProductCode"value="F460129">

아래의 jquery 코드는 유형별로 입력 만 선택하므로 모든 확인란이 숨겨진 입력으로 변경됩니다. input = "checkbox"및 name = "ProductCode"유형을 모두 선택기로 확인하는 방법이 있습니까? 내가 바꾸고 싶어?

$("input[type='checkbox']").each(function(){
var name = $(this).attr('name'); // grab name of original
var value = $(this).attr('value'); // grab value of original
var html = '<input type="hidden" name="'+name+'" value="'+value+'" />';
$(this).after(html).remove(); // add new, then remove original input
});

답변:


285

다중 속성 선택기를 원합니다

$("input[type='checkbox'][name='ProductCode']").each(function(){ ...

또는

$("input:checkbox[name='ProductCode']").each(function(){ ...

CSS 클래스를 사용하여 선택하려는 항목을 식별하는 것이 좋지만 많은 최신 브라우저 document.getElementsByClassName가 요소를 선택하는 데 사용되는 메소드를 구현 하고 name속성으로 선택하는 것보다 훨씬 빠릅니다.


둘 다 나를 위해 일했지만 두 번째 방법을 사용했습니다. THX, 다른 질문이 있지만 새로운 질문을하겠습니다.
user357034

22

이 방법으로 속성 선택기를 결합 할 수 있습니다.

$("[attr1=val][attr2=val]")...

요소가 두 조건을 모두 만족시켜야합니다. 물론 두 개 이상 사용할 수 있습니다. 또한하지 마십시오 [type=checkbox]. jQuery에는 선택기가 있습니다. 즉 :checkbox최종 결과는 다음과 같습니다.

$("input:checkbox[name=ProductCode]")...

속성 선택기는 느리기 때문에 가능한 경우 ID 및 클래스 선택기를 사용하는 것이 좋습니다. 마크 업을 다음과 같이 변경할 수 있습니다.

<input type="checkbox" class="ProductCode" name="ProductCode"value="396P4"> 
<input type="checkbox" class="ProductCode" name="ProductCode"value="401P4"> 
<input type="checkbox" class="ProductCode" name="ProductCode"value="F460129">

훨씬 빠른 선택기 를 사용할 수 있습니다 .

$("input.ProductCode")...

분명히 이것은 잘 작동하지만 올바른 답변에 대해 한 사람에게만 크레딧을 줄 수 있습니다. :) 클래스 클래스를 추가하지 않으면 마크 업에 액세스 할 수없는 클래스 원인으로 타겟팅 할 수 없습니다. 그러나 Thx !!!
user357034

6
input[type='checkbox', name='ProductCode']

이것이 CSS 방식이며 jQuery에서 작동 할 것이라고 거의 확신합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.