随着时间的推移,我在自己的项目中使用了一些日历小部件,但最近我认为它们不符合我的期望。所以我最近决定构建我自己的“日历小部件”。
我有这两个文件(为了演示而简化):
index.php
<div id="displayCalendar"></div>
<div id="displayStaff"></div>
<script>
function selectDay(selected) {
if(selected != $('#date').val()){
var day = "#" + selected;
$('.calendar-day-active').removeClass("calendar-day-active");
$(day).addClass("calendar-day-active");
$('#date').val(selected);
getInfo();
}
}
function displayCalendar(attrib = ""){
$.ajax({
type: 'POST',
url: 'loadCalendar.php',
data: { attrib: attrib },
success: function(response) {
$('#calendar_display').html(response);
}
});
}
</script>
loadCalendar.php
<?php
// this will be displayed for each day in the selected month
echo '<div class="col border border-success calendar-day" id="calendar '.$day.$month.$year.'" onClick="selectDay(`'.$day.$month.$year.'`);">';
?>
现在的问题是,当我单击日历的某一天时,类calendar-day-active会从旧元素中删除,但单击的那个元素不会添加这个类。
我还尝试过通过Chromes Dev工具选择和更改元素,但没有成功。
有没有办法修改用php和ajax生成的html?(因为php文件是通过ajax加载的)
发布于 2018-08-10 05:37:50
如果您希望id字段中包含空格,则应使用不同类型的选择器:
function selectDay(selected) {
if(selected != $('#date').val()){
var day = selected;
$('.calendar-day-active').removeClass("calendar-day-active");
$("div[id='calendar " + day + "']").addClass("calendar-day-active");
$('#date').val(selected);
getInfo();
}
}
或者,你可以用下划线代替空格,这样就很好了。
https://stackoverflow.com/questions/51775959
复制相似问题