2011-03-09 5 views
0

확인란이있는 양식이 있습니다. 모든 체크 박스에는 att라는 속성이 있으며 여기에는 쉼표로 구분 된 여러 개의 숫자가 포함됩니다.사용자 정의 속성이있는 모든 입력을 이동하는 방법

숫자를 가져 와서 모든 체크 박스를 건너 뛰고 att 속성에 해당 숫자가 포함 된 모든 체크 박스를 확인하는 함수를 만들고 싶습니다.

나를 올바른 방향으로 안내해 주시겠습니까?

답변

1

당신이

function myfunc(num) 
{ 
    $(":checkbox[att!='']").each(function() 
    { 
     var i, l, values = $(this).attr("att").split(","); 
     for (i = 0, l = values.length; i < l; ++i) 
     { 
      if (values[i] == num) 
      { 
       $(this).attr("checked", "checked"); 
       break; 
      } 
     } 
    }); 
} 
+0

웬일인지 왜 나를 위해 일하지 않고, 어떤 생각? – Lior

+0

좋아, 나쁘다, 일하고있어, 정말 고마워! – Lior

1

JQuery를 사용하면 attribute-contains selector을 사용하여 속성에 특정 값이 들어있는 모든 요소를 ​​가져올 수 있습니다.

$('input[att*="100"]').val('input has 100 in it!'); 
+0

것은 같은 그 AT & T는 작업을 수행 할 수 있습니다 jQuery를 사용하여 아래 그림과 같습니다 당신이 확인란이 제한 선택기를 변경하려면 = " 1000, 12, 14 "에 100이 들어 있지만 실제로 그렇지 않습니다. – Lior

+0

당신은 절대적으로 옳습니다, 나는 그것에 대해 생각하지 않았습니다. – Thomas

1

이 모든 input 요소를 통해 반복하고 (쉼표를 사용하여 분할) 당신에게 att의 값을 포함하는 배열을 제공합니다, 그래서 난 단지 체크 박스를 골라 몇 가지 로직을 추가 할 것 :

for (var i = 0; i < document.getElementsByTagName('input'); i++) 
{ 
    var att_array = document.getElementsByTagName('input')[i].getAttribute('att').split(','); 
} 
1

을 이렇게하면 ATTR 속성을 가진 모든 입력 값을 얻게되고 각각의 값을 알립니다. 당신은 물론 당신이 발을 갖고있을 때 원하는대로 할 수 있습니다.


$("input[ATTR]").each(function(){ 
    alert($(this).attr("ATTR")) 
}) 


$(":checkbox[ATTR]").each(function(){ 
    alert($(this).attr("ATTR")) 
}) 
+0

'.val()'은 불필요합니다. –

+0

전화하세요. 나는 내가 생각하는 습관에서 그것을하는 경향이있다. – iivel

+0

나는'.val()'이 오류를 일으킬 것이라는 것을 의미했습니다. –

관련 문제