开发者社区> 问答> 正文

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

<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的方式获取到对应的元素应该怎么写?

展开
收起
kun坤 2020-06-09 10:56:03 485 0
1 条回答
写回答
取消 提交回答
  • :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。
    2020-06-09 10:56:10
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
探究 Node.js 的服务端之路 立即下载
Javascript中的对象 立即下载
Delivering Javascript to World 立即下载