我正在尝试突出显示可以根据要求当天,时间开始和时间结束的表单提供的桌子。我能够回应所有可用的办公桌,但我无法让jquery使用它。
foreach ($allData as $desk => $id){
foreach ($id as $computer){?>
<div id="<?php echo $desk?>"></div><?php
}
}
<style>
.availableDesk{
background: #000000
}
</style>
<script>
$(document).ready(function() {
jQuery( " <?php echo $desk ?> " ), addClass('availableDesk') ;
})
</script>
DESKS:
<ul class="tabs">
<li id="1A"><a href="#1A"><div id="ddesk"></div></a></li>
<li id="1B"><a href="#1B"><div id="ddesk"></div></a></li>
<li id="1C"><a href="#1C"><div id="ddesk"></div></a></li>
</ul>
答案 0 :(得分:2)
你错过了PHP块末尾的?>
。
<?php
foreach ($allData as $desk => $id){
foreach ($id as $computer){?>
<div id="<?php echo $desk?>"></div><?php
}
} // You need a "?>" here
?>
您的jQuery代码有一些问题。首先,如果$desk
是ID,则需要执行$('#ID')
。其次,您在addClass
之前使用逗号而不是句号。
jQuery("#<?php echo $desk ?>").addClass('availableDesk');
P.S。 HTML ID不应该以数字开头。此外,您不能拥有多个具有相同ID的元素,我建议您改用类。
答案 1 :(得分:2)
我可以在这里看到几个潜在的问题......
jQuery( "<?php echo $desk ?>" ), addClass('availableDesk') ;
从语法上讲,我认为这应该是:
jQuery("#<?php echo $desk ?>").addClass('availableDesk');
注意选择器中的#,这告诉jQuery你正在寻找一个id。 addClass方法在返回的项目上可用,因此您需要停止(。)而不是逗号(,)
另一个问题是你在PHP的foreach循环中编写id - 我假设每个桌面都有一个唯一的id - 当你写jQuery("#<?php echo $desk ?>")
时,语句不在foreach循环中,所以它赢了与您定位的ID不匹配。
如果您知道桌面是PHP可用的,那么最好的选择是在写桌面时设置课程......
<div id="<?php echo $desk?>" class="availableDesk"></div>