假设我们有以下HTML代码:
<div>
Select Gender:
<input type="radio" />
Male
<input type="radio" />
Female
</div>
我的目标是检查男性单选按钮(第一个)。但是,我不知道此单选按钮是否始终是两个单选按钮中的第一个,唯一可以确定的是,我想在“男性”文本之前检查单选按钮。
这就是我的做法:
$('div')
.contents()
.filter(function() {
return (((this.textContent || this.innerText || $(this).text() || '').search(new RegExp(labels[i], "ig")) >= 0) && (this.nodeType === 3));
})
.prev('input[type=radio]')
.attr('checked', 'checked');
但这是行不通的。快速调试显示正确选择了文本节点,但是.prev()函数未返回任何内容。我也尝试过使用previousSibling,但是没有更好的结果。
提前致谢 !
最佳答案
检查“男性”文本之前的单选按钮。
http://jsfiddle.net/hmariod/ZtuKD/1/
function setM() {
var inps = document.getElementsByTagName("input");
for(var i = 0; i < inps.length; i++){
if(inps[i].type == "radio" ){
if(inps[i].nextSibling.data.indexOf("Male") > -1){
inps[i].setAttribute("checked","checked");
}
}
}
}