我想知道如何使用jQuery基于链接中的ID为链接添加CSS类。如果if语句为true,我不想将CSS类“active”添加到链接中。不是说我不想从链接中的类中删除“pFavorite”如果语句为真,我只想添加活动,就像这样 class =“pFavorite active”我还没想到jQuery呢。我希望我的代码仍能解释我想要实现的目标。
<?php
foreach($statement as $p)
{
if(array_search($p['id'], explode(",", $_COOKIE['cookie'])))
{
?>
<script type="text/javascript">
$("#<?php echo $p['id']; ?>", ".pFavorite").addClass("active");
</script>
<a href="#" class="pFavorite" id="<?php echo $p['id']; ?>">IMG HERE</a>
<?php
}
}
?>
答案 0 :(得分:4)
首先你的jQuery选择器是错误的,你可能意味着与
类似的东西$("#<?php echo $p['id']; ?>.pFavorite").addClass("active");
以上将匹配具有特定id 和类pFavorite的元素,而您的原始选择器将匹配具有类pFavorite的所有元素,然后查找具有指定id 的元素在任何中,没有找到任何东西(因为目标元素是其中一个有类,而不是后代)。
其次,您不需要类选择器,因为您已经使用了id选择器,并且ids是唯一的。所以这将进一步简化为
$("#<?php echo $p['id']; ?>").addClass("active");
最后:当你在PHP端获得所需的所有信息时,为什么要在页面加载jQuery之后设置类?你可以简单地做
if(array_search($p['id'], explode(",", $_COOKIE['cookie']))) {
// Use htmlspecialchars for all HTML output; you may need to specify
// additional parameters (see the function documentation)
printf('<a href="#" class="active pFavorite" id="%s">IMG HERE</a>',
htmlspecialchars($p['id']));
}
答案 1 :(得分:0)
为什么不:
<?php
foreach($statement as $p) {
if(array_search($p['id'], explode(",", $_COOKIE['cookie']))) {
echo('<a href="#" class="pFavorite active" id="' . $p['id'] . '">IMG HERE</a>');
}
}
?>
答案 2 :(得分:-1)
<?php
foreach($statement as $p)
{
if(array_search($p['id'], explode(",", $_COOKIE['cookie'])))
{
?>
<script type="text/javascript">
$(document).ready(function() {
$("#<?php echo $p['id']; ?>.pFavorite").addClass("active");
});
</script>
<a href="#" class="pFavorite" id="<?php echo $p['id']; ?>">IMG HERE</a>
<?php
}
}
?>