2011-01-13 4 views
1

요소 자식에 대해서는 거의 문제가 없습니다.JavaScript로 요소 자식을 가리키는 방법

Heres는 일부 코드는 내 질문에 설명하기 :

function check(element){ 
    // I want to get custom attribute from element children. 
    // Children elements are always radio buttons 
    var temp = element. ?? .attr('temp'); 
    return temp; 
    } 

// element variable is the whole div here 
    <div id = "test"> 
    <table> 
     <tr> 
     <td> <input type="radio" temp="somethinghere"/></td> 
     </tr> 
    </table> 
    </div> 

희망 누군가가 아이디어 나 더 나은 .. 솔루션을 제공합니다.

+0

자녀가 여러 명인 경우 무엇을하고 싶습니까? – lonesomeday

답변

1

난 당신이 뭔가를하려는 생각합니다.

+0

대단히 고마워요! 이것은 트릭을했다. 'temp'에서 빠진 것이 하나뿐입니다); :) – Roggo

1
var temp = element.getAttribute('temp') 

또는

var temp = element.temp = temp; 

또는

var temp = element['temp'] = temp; 

https://developer.mozilla.org/en/DOM/element.getAttribute

편집 : 시도 :

var temp = ''; 
for (var i = 0; i < element.childNodes; i++) 
    temp += element.childNodes[i].getAttribute('temp'); 
return temp; 

이게 당신이 찾고 있는게 있나요?

+0

Nope. 이 요소 childrens에 액세스하여 해당 속성을 가져와야합니다. 나는 그들에게 접근하는 방법을 모른다. – Roggo

-1

첫 번째 자식 라디오 버튼 모든 '임시'을 원하는 경우의

var temp = element.children(':radio:first').attr('temp'); 

이 시도 모든 자식 라디오 버튼에서 다음을 수행 인 attr : 테이블 샘플

에 대한

var arrTemp = element.children(':radio').map(function(){ 
    return $(this).attr('temp'); 
    // or you can make it more detail like: 
    // return { ID: $(this).attr('id'), Temp: $(this).attr('temp') }; 
}).get(); 

UPDATE

var arrTemp = element.find(':radio').map(function(){ 
     return $(this).attr('temp'); 
     // or you can make it more detail like: 
     // return { ID: $(this).attr('id'), Temp: $(this).attr('temp') }; 
    }).get(); 
+0

이것은 jQuery라고 가정합니다. btw Children 요소는 _always_ 라디오 버튼입니다. – qwertymk

+0

jquery를 요청한 것 같지 않습니다. –

0

elemen의 모든 하위 배열을 가져 오려면 t : 그 배열 중 하나를 통해

element.getElementsByTagName("input") 

이어서 루프 :

element.childNodes; 

소자의 후손 모든 입력 태그의 배열을 얻으려면.

function check(element) { 
    var ret = []; 

    for (var i = 0; i < element.childNodes.length; i++) { 
     if (element.childNodes[i].type == 'radio') { 
      ret.push(element.childNodes[i].getAttribute('temp')); 
     } 
    } 

    return ret; 
} 

이 요소의 라디오 아이의 모든 temp 특성을 포함하는 배열을 반환합니다

관련 문제