javascript - 想要使用 jquery 获取最近的内部选中单选按钮的值
问题描述
想要使用 jquery 获取最近的内部选中单选按钮的值:
我的代码片段:
HTML 代码片段:
<div class="rating" data-islogin="<?php echo $this->session->userdata('vhkrt_clt_logged_in')==TRUE ? 1:0;?>" data-userid="<?=$cltId?>" data-prodid="<?=$prod->prod_id?>">
<input type="radio" id="star5_<?=$prod->prod_id?>" name="rating" value="5" />
<label class = "full" for="star5_<?=$prod->prod_id?>"></label>
<input type="radio" id="star4_<?=$prod->prod_id?>" name="rating" value="4" />
<label class = "full" for="star4_<?=$prod->prod_id?>"></label>
</div>
jQuery 代码片段:
$('.rating').click(function(){
var rating = $(this).closest('input[name = rating]:checked').value;
alert(rating); //getting "undefined"
})
我正在尝试上面的代码片段,但我得到的评级值是“未定义”的警报
请建议我正确的声明来检查单选按钮的值。
由于某些情况,我不想实现单选按钮的“onchange”事件。
解决方案
jQueryclosest
用于查询祖先,在您的情况下,您需要子标签。你可以children
改用
$('.rating').click(function(){
var rating = $(this).children(`input[name = 'rating']:checked`).val();
alert(rating);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="rating" data-islogin="<?php echo $this->session->userdata('vhkrt_clt_logged_in')==TRUE ? 1:0;?>" data-userid="<?=$cltId?>" data-prodid="<?=$prod->prod_id?>">
<input type="radio" id="star5_<?=$prod->prod_id?>" name="rating" value="5" />
<label class = "full" for="star5_<?=$prod->prod_id?>"></label>
<input type="radio" id="star4_<?=$prod->prod_id?>" name="rating" value="4" />
<label class = "full" for="star4_<?=$prod->prod_id?>"></label>
</div>
推荐阅读
- python - 如何使用 python(机器人框架)将 .properties 文件中的数据读入 .robot 文件
- ssms - 对sql中的某些行求和
- javascript - 如何将黑色名称和红色星号应用到占位符星号作为必填项?
- python - 如何在 Spyder 的 Python 代码中正确显示变量值?
- sql - SQL Server 100 万条记录:获得表的最快最后一条记录的最佳方法?
- webpack - 使用带有限制选项的 url-loader 时,是否有任何理由使用 file-loader?
- java - 在没有可用连接时显示 toast 错误并阻止显示 webview
- reactjs - 在 React Table 中触发单元格 onClick 而不是行 onClick
- group-by - 在 SAS 中按组获取最新课程
- mysql - 如何加入两个比较不同结果的查询?