如何使用JavaScript指向元素子元素

时间:2011-01-13 12:50:39

标签: javascript

我对元素孩子没什么问题。

下面是一些代码来解释我的问题:

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>

希望有人有想法,甚至更好......解决方案。

4 个答案:

答案 0 :(得分: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;

这是你要找的吗?

答案 1 :(得分:1)

我想你想要这样的东西:

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属性。

答案 2 :(得分:0)

获取元素的所有子元素的数组:

element.childNodes;

获取作为元素后代的所有输入标记的数组:

element.getElementsByTagName("input")

然后遍历其中任何一个数组。

答案 3 :(得分:-1)

尝试使用第一个子单选按钮

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

如果你想要所有子单选按钮的所有'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();
表格样本的

更新

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();