js获取单选框选中值

<s:iterator id="item" value="appInfo.visitHistoryList">
<li>
<img src="showImage?itemId=<s:property value='#item.goid'/>" οnclick="showAppInfo(<s:property value='#item.goid'/>)" title="<s:property value='#item.name'/>">
<div class="comment_btn"><a href="javascript:void(0)" οnclick="remark(<s:property value='#item.goid'/>)"></a></div>
<div class="comment_area" style="display:none" id="<s:property value='#item.goid'/>">
<p>评论</p>
<p><input name="isLiked" type="radio" value="1"/>喜欢    <input name="isLiked" type="radio" value="0"/>不喜欢</p>
<p><input type="button" class="next_btn2" οnclick="remarkApp(<s:property value='#item.goid'/>)" value="确定"/><input type="button" class="next_btn2" οnclick="cancleRemark(<s:property value='#item.goid'/>)" value="取消"/></p>
</div>
</li>
</s:iterator>

页面中有很多应用,每个应用都有自己对应的comment_area,因此页面中会遍历出很多comment_area,所以不能根据document.getElementsByName("isLiked")来获取radios数组,那么为了获取item对应的评价该如何做呢???
解决方案:
(1)每个评论区comment_area设置一个id属性,其id属性值为对应应用的id
(2)点击每个应用对应的评论按钮时,传递一个参数,该参数为这个应用的id
(3)获取该应用的显示区域后,让其显示出来,在通过查找子元素的方法来获取radios数组,从而准确的获取该应用对应的单选按钮值.
js代码如下:
function remarkApp(itemId){
var comment=document.getElementById(itemId);
var p=comment.children(1);
var radios=p.children;
var isLiked=-1;
for(var i=0;i<radios.length;i++){
if(radios[i].checked){
isLiked=radios[i].getAttribute("value");
}
}
if(isLiked==-1){
alert("请选择你对该应用的评价");
return;
}
$.ajax({
url: "/recommend/portal/ajaxRemarkApp.action",
data: "isLiked="+isLiked+"&itemId="+itemId,
cache: false,
success: function(html){
$(comment).css("display","none");
}
});
}
值得注意的是,这里是通过获取children的方法来获取radios数组的,还有就是要注意childNodes和children的区别,childNodes获取的是该元素的所有后代元素(子孙元素),children获取的只是子元素,结合最上面的代码:
var comment=document.getElementById(itemId);
var p1=comment.children; //p1.length=3
var p2=comment.childNodes; //p2.length=7
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值