动态值不起作用的选择器的连接 - Jquery

时间:2017-12-20 15:51:33

标签: javascript jquery jquery-selectors

我正在尝试删除 a href 背景的样式。问题是当我将动态id与选择器连接起来然后它就不起作用了。但是当我使用选择器的完整名称时,它就可以工作了。 我知道您可以将我的问题标记为像here那样重复,但它们对我不起作用。请纠正我。

有效:

$("a").click(function(event) 
{
     var id = event.target.id;
     $('#chatIdStyle4').removeAttr("style");
});

什么没有:

$("a").click(function(event) 
{
     var id = event.target.id;
     $('#chatIdStyle'+id).removeAttr("style");
});

OR

$("a").click(function(event) {
      //alert(event.target.id);
      var iddds = event.target.id;
      $('#chatIdStyle["'+ iddds + '"]').removeAttr("style");
});

注意:var id包含事件触发的动态id。

按要求编辑:

下面是我的HTML + PHP代码。所以,它的作用实际上是创建了4个具有动态ID的动态 a href 。我是什么 想要的是,当点击特定的 a href 时,它应该删除之前的 a href 背景和 为点击的 a href 添加背景。

<?php
    $color = false;
    $PID = 4;
    for($i=0;$i<4;$i++)
    {
?>
    <a <?php if($color==true)
            {
                ?> style="background-color: #E6E6E6;" <?php
            }
            $color=false;
        ?>
        id="chatIdStyle<?php echo $PID; ?>"
        href="#">
    </a>
<?php
    }
?>

1 个答案:

答案 0 :(得分:0)

我建议使用CSS解决方案而不是jQuery:

a { background: none; }
a:active { background: #E6E6E6; }

第二行将设置最后点击的a元素的背景。

关于:active伪类:https://www.w3schools.com/cssref/sel_active.asp