2011-01-13 7 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'には1つの ')'がありません。 :) – 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

最初の子のラジオボタンは、すべての子のラジオボタンからattrのすべての「TEMP」をしたい場合は、以下のんの

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

のためにこれを試してみてください。

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子要素は常に_ラジオボタンです – qwertymk

+0

私は彼がjqueryを要求したとは思わない –

0

elemenのすべての子の配列を取得するにはT:

element.childNodes; 

要素の子孫であるすべての入力タグの配列を取得する:

element.getElementsByTagName("input") 

それらの配列のいずれかを介して、ループ。

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属性を含む配列を返します。

関連する問題