php数组和jquery添加类

时间:2011-09-09 13:48:00

标签: php javascript jquery addclass

我正在尝试突出显示可以根据要求当天,时间开始和时间结束的表单提供的桌子。我能够回应所有可用的办公桌,但我无法让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>

2 个答案:

答案 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>