jquery里的这个:target怎么用?:报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

jquery里的这个:target怎么用?:报错

kun坤 2020-06-09 10:56:03 25
<div border="2px">
        <a href="#p1">to 1</a><br/>
        <a href="#p2">to 2</a><br/>
        <a href="#p3">to 3</a>
    </div>
    <p id="p1">111111111</p>

    <p id="p2">22222222222</p>

    <p id="p3">3333333333333333</p>
点击超链接a后,可以再控制台通过
$("p:target").css('color','#FAA');
来控制文本的颜色,但是直接写js函数确没有效果,如果要在js文件中通过:target的方式获取到对应的元素应该怎么写?
JavaScript 前端开发
分享到
取消 提交回答
全部回答(1)
  • kun坤
    2020-06-09 10:56:10
    :target
    是CSS3新增的的突出锚选择器,类似于CSS中的:hover(鼠标移到元素顶部)类型,是一个伪类选择器,代表的是动态状态,无法用于jQuery静态选择。 至于你在console控制台可以使用,是因为你点击了a锚,存在p:target元素。而你静态js代码是初始绑定,当然就拿不到。 正确的做法是:当有锚点触发时,获取:target元素。你可以这样写:
    $(window).on('hashchange',function(){
      $('p:target').css({...});
    });

    ######回复 @yunfound : 找到了######回复 @yunfound : 在哪操作?######回复 @徐航 : 记得给最佳答案!!!######解决了,多谢;-)######

    $(document).on('click', 'a', function(){

      $('p:target').css({...});
    }); ######多谢。 不过第一次点击没效,第二次点击时才有效,应该是点击过一次后才能获取到:target。
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程