我无法获得无线电盒改变的div字段的id。如果我从html中删除表格编码,这种编码就行了。有什么想法吗?
示例HTML:
$PLAN_REPORT_DATE_HTML .= qq|<div id="planreportdate-$TECH_ID---$METRIC_ID---$SIZE_ID">
<table><tr><td>
${FOUNDRY_NAME}_${TECHFLAVOUR}-$SIZE_VALUE<br><br>
<input type="radio" name="radiovalue-$count" value="Latest" > Latest <br>
<input type="radio" name="radiovalue-$count" value="MajorUpdates" > Major Updates <br>
<input type="radio" name="radiovalue-$count" value="All" >All<br>
</td></tr><tr><td>
<select name="plan-$count" multiple id="plan-$TECH_ID---$METRIC_ID---$SIZE_ID" size="5">|;
Jquery Coding
$("div[id^='planreportdate-'] input[name^='radiovalue-']").change(function(event) {
var id_value = $(this).parent().attr('id');
var value= $("div[id="+ id_value + "] input[name^='radiovalue-']:checked").val();
var selectboxid = id_value.replace(/^planreportdate-/g,"");
if (value == "All")
{
// THIS CODING SELECTS ALL THE SELECT OPTIONS
$("#plan-" + selectboxid).each(function() {
$("#plan-" + selectboxid + " option").attr("selected","selected");
});
}
答案 0 :(得分:0)
使用.closest()
jQuery函数查找最接近DOM中单选按钮的DIV。使用.parent()
将不起作用,因为单选按钮的直接父元素是<td>
元素,而不是您感兴趣的<div>
元素。如下所示:
var id_value = \$(this).closest('div').attr('id');
答案 1 :(得分:0)
我会向父级添加一个类,并使用.parents()
,如下所示:
$PLAN_REPORT_DATE_HTML .= qq|<div id="planreportdate-$TECH_ID---$METRIC_ID---$SIZE_ID" class="parentOfRadios">
<table><tr><td>
${FOUNDRY_NAME}_${TECHFLAVOUR}-$SIZE_VALUE<br><br>
<input type="radio" name="radiovalue-$count" value="Latest" > Latest <br>
<input type="radio" name="radiovalue-$count" value="MajorUpdates" > Major Updates <br>
<input type="radio" name="radiovalue-$count" value="All" >All<br>
//.parents() to select
var id_value = $(this).parents('.parentOfRadios').first().attr('id');
查看.parents()和.closest()之间的区别。