尝试将div id =“ test”更改为使用javascript选择的下拉选项中的值。我开始了jsfiddle。如果用户选择2013,则div id =“ test”应更改为div id =“ 2013”,并显示月份的第二个下拉列表。年份下拉列表中的值最终将用于查询数据库中该年份记录的实际月份,但现在我很想更改div id并存储该值以备后用。
<div class="report_select" id="style_container_div">
<label>Year:</label>
<select size="1" id="year" title="" type="select" name="style">
<option value="">Select Year</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
</select>
<div class="clear"></div>
<div id="error-message-style"></div>
</div>
<div id="test" class="style-sub-1" style="display: none;" name="stylesub1" onchange="ChangeDropdowns(this.value)">
<label>Select a Month:</label>
<select>
<option value=""></option>
<option value="January">January</option>
<option value="February">February</option>
<option value="March">March</option>
<option value="April">April</option>
<option value="May">May</option>
<option value="June">June</option>
<option value="July">July</option>
<option value="August">August</option>
<option value="September">September</option>
<option value="October">October</option>
<option value="November">November</option>
<option value="December">December</option>
</select>
</div>
<script type="text/javascript">
$("#year").change(function () {
var targID = $(this).val();
$("div.style-sub-1").hide();
$('#' + targID).show();
})
$("div.style-sub-1 select").change ( function () {
$("div.style-sub-2").hide ();
document.getElementById("test").setAttribute("id", targID);
$('#' + targID).show ();
} )
</script>
最佳答案
请注意,您可以使用jQuery代替document.getElementById("id")
来完成$("#id")
,而可以代替.setAttribute
来实现.attr('attr', 'attrVal')
。
因为$("#test")
的ID将被更改,所以解决方案是更改select
父对象的ID。
// on change
var $this = $(this);
$this.parent().attr("id", $this.val());
但是,我建议您使用
data-attr
而不是更改ID。<div id="test" data-value="test">...</div>
然后进行设置:
$("#test").attr("data-value", $this.val());
关于javascript - 使用JavaScript更改DIV ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17563829/