我对元素孩子没什么问题。
下面是一些代码来解释我的问题:
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 :(得分: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();