Javascript 分配ID';s到表列并添加单击功能

Javascript 分配ID';s到表列并添加单击功能,javascript,php,jquery,Javascript,Php,Jquery,我正在尝试找出日历中的所有日子是否都有ID,因为我计划在那天访问数据库中的文档。我的问题是,只有一个ID被分配给表列,并且在多次尝试后单击它会增加我收到的警报消息的数量…我到底错过了什么/做错了什么 Php日历部分(天) $list_day = 1; while($list_day <= $days_in_month){ $calendar.= '<td class="calendar-day">'; /* add in the day numb

我正在尝试找出日历中的所有日子是否都有ID,因为我计划在那天访问数据库中的文档。我的问题是,只有一个ID被分配给表列,并且在多次尝试后单击它会增加我收到的警报消息的数量…我到底错过了什么/做错了什么

Php日历部分(天)

    $list_day = 1;
while($list_day <= $days_in_month){
    $calendar.= '<td class="calendar-day">';
        /* add in the day number */
        $calendar.= '<div class="day-number" id = "day'.$list_day.'" onclick = displayDocuments()>'.$list_day.'</div>';

        /** QUERY THE DATABASE FOR AN ENTRY FOR THIS DAY !!  IF MATCHES FOUND, PRINT THEM !! **/
        $calendar.= str_repeat('<p> </p>',2);

    $calendar.= '</td>';
    if($running_day == 6){
        $calendar.= '</tr>';
        if(($day_counter+1) != $days_in_month){
            $calendar.= '<tr class="calendar-row">';
        }
        $running_day = -1;
        $days_in_this_week = 0;
    }
    $days_in_this_week++;
    $running_day++;
    $day_counter++;
    $list_day++;
}

检查这一点可以通过循环到每天都有的类来完成,在您的示例中:
daynumber
。然后提醒id查看它是否存在

HTML:

$calendar.= '<div class="day-number" id="day'.$list_day.'">'.$list_day.'</div>';
$(document).ready(function() {
    $(".day-number").each(function() {
        var currentid = $(this).attr("id");
        alert(currentid);
    });
});
可能的输出:

$calendar.= '<div class="day-number" id="day'.$list_day.'">'.$list_day.'</div>';
$(document).ready(function() {
    $(".day-number").each(function() {
        var currentid = $(this).attr("id");
        alert(currentid);
    });
});
  • 第1天-第1天存在
  • 第2天-第2天存在
如果它在第1天、第2天等发出警报,则您知道ID是在特定的一天设置的,如果它没有发出警报;你知道它还没定下来


因为您使用的是PHP,所以我无法在JSFIDLE上向您展示,但我希望这能帮助你检查每天是否有ID。

你在html中引用ID属性的值,然后再试一次如何?哇…在那里添加引号不会解决这个问题,因为我认为我只需要在名称上用空格分隔开的引号…谢谢,但我想知道为什么警报消息仍然重复不止一次重复多次,因为一旦您单击一天,它就会启动函数
displayDocuments()
,此函数中有两个警报<代码>第一天
第2天。它会重复,因为click()函数会指定一个click侦听器。查看文档:我不知道每个函数的用法……这很方便。尽管出于某种原因,$(this).id在我尝试时返回undefined,因此我只是指定了id'sAh,因为您的PHP不正确,让我更改我的答案。您没有正确设置id,
id=day。$list\u day。
与id=day1相同,没有被引用。将其更改为:
id=“day”。$list\u day.”“
与id=“day1”相同。哦,对不起,我忘了更新问题……我更新了它,它仍在重复。如果您使用我现在的答案中所写的HTML更改您的HTML,它是否仍然输出未定义的id,或者它是否有效?