-1
我在JQuery的文檔中呈現了一個html元素,我的問題是我無法在呈現它之後訪問它,但是當我將它放在一個靜態html中時,我可以。讓我解釋我的代碼。訪問由JQuery呈現的事件(HTML元素)
首先這裏是我插入我的html的div。
<div class="col-lg-8" id="datetypediv">
{{-- <select required name="date_select" class ="form-control " id ="date_select">
<option value="daily">Daily</option>
<option value="monthly">Monthly</option>
<option value="quarterly">Quarterly</option>
<option value="anually">Annually</option>
</select> --}}
{{-- date select variations --}}
</div>
jQuery呈現的html進入div內部,這裏是我如何呈現它。
$(document).ready(function(){
console.log('range not checked');
$("#datetypediv").html("<select required name='date_select' class='form-control' id='date_select'>" +
"<option value='daily'>Daily</option>" +
"<option value='monthly'>Monthly</option>" +
"<option value='quarterly'>Quarterly</option>" +
"<option value='anually'>Annually</option> </select>");
//date range
$("#rangediv").html("<label>Day  </label><input class='form-control' style='width:243px;height:25px;' type='date' name='day_date' id='day_date'/>");
$(function() {
$("#day_date").datepicker();
});
});
正如你所看到的,我現在正在渲染一個選擇標記,這裏就是這個問題。選擇標記的Onchange我將內部div再次更改爲另一個HTML,即此代碼。
$('#date_select').change(function() {
console.log('changed');
if($('#date_select option:selected').val() == 'daily') {//value attribute
console.log('daily');
$("#rangediv").html("<label>Day  </label><input class='form-control' style='width:243px;height:25px;' type='date' name='day_date' id='day_date' />");
$(function() {
$("#day_date").datepicker();
});
} else if($('#date_select option:selected').val() == 'monthly') {
console.log('monthly');
$("#rangediv").html("<label>Month:  </label>" +
"<select name='month_date_select' class='form-control' id='month_select' style='width:90px;height:35px;'></select>  " +
"<label>Year  </label>" +
"<select name='year_date_select' class='form-control' id='year_select' style='width:90px;height:35px;'></select>");
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
for (i = 0; i < 12; i++) {
$('#month_select').append($('<option />').val(months[i]).html(months[i]));
}
for (i = new Date().getFullYear() ; i > 2008; i--) {
$('#year_select').append($('<option />').val(i).html(i));
}//script for populating the dropdown
} else if($('#date_select option:selected').val() == 'quarterly') {
console.log('quarterly');
$("#rangediv").html("<label>Quarter:  </label>" +
"<select name='quarter_date_select' class='form-control' id='quarter_select' style='width:90px;height:35px;'></select>  " +
"<label>Year  </label>" +
"<select name='year_date_select' class='form-control' id='year_select' style='width:90px;height:35px;'></select>");
$('#quarter_select').append($("<option value='1'>1st Quarter</option>" + "<option value='2'>2nd Quarter</option>" + "<option value='3'>3rd Quarer</option>" +
"<option value='4'>4th Quarter</option>"));
for (i = new Date().getFullYear() ; i > 2008; i--) {
$('#year_select').append($('<option />').val(i).html(i));
}
} else if($('#date_select option:selected').val() == 'anually') {
console.log('anually');
}
});
基本上它獲取select標籤的選定值並根據它改變裏面的div。
但我的問題是它不會顯示我的預期行爲,但只在使用jquery呈現html的情況下,如果我使用靜態HTML,如上面我註釋的基於選定值工作的靜態HTML,它會觸發if if語句。你能幫助解決我的問題嗎?爲什麼它沒有得到id
(我真的不知道是什麼導致了這種行爲,所以我將假設id
)。爲什麼會導致這種行爲?非常感謝你。
你需要有( '變' 事件代表團 $( '#date_select'),函數(){ 。 }); –