每个类的jquery单击事件以查找href属性

Posted

技术标签:

【中文标题】每个类的jquery单击事件以查找href属性【英文标题】:jquery click event for each class to find href attribute 【发布时间】:2014-02-09 05:28:39 【问题描述】:

我是 jquery 的新手。 我正在尝试查找目标元素的“href”属性。

我为每个类“链接重定向”编写了一个点击事件脚本。在此尝试使用 data-target 属性为目标元素选择 href。

但是通过使用我的脚本,我总是得到第一个 div 的 href,即“link1”。

我在这里做错了什么?

<div class="link-redirect" data-target=".title-link">
    <div cass="div1">
        <a href="link1" class="title-link">LInk</a>
    </div>
</div>
<div class="link-redirect" data-target=".title-link">
    <div cass="div1">
        <a href="link2" class="title-link">LInk</a>
    </div>
</div>
<div class="link-redirect" data-target=".title-link">
    <div cass="div1">
        <a href="link3" class="title-link">LInk</a>
    </div>
</div>
<div class="link-redirect" data-target=".title-link">
    <div cass="div1">
        <a href="link4" class="title-link">LInk</a>
    </div>
</div>

<script>
    $('.link-redirect').each(function()
        $(this).on( "click", function() 
            var self = $(this);
            var link = $(self.data('target')).attr('href');           
            alert(link);           
        );
    );
</script>

【问题讨论】:

课程在div,而不是a 为什么是数据目标元素? 【参考方案1】:

您需要找到与当前link-redirect 元素相关的锚元素(在这种情况下为后代)

$('.link-redirect').on("click", function () 
    var self = $(this);
    var link = self.find(self.data('target')).attr('href');
    alert(link);
);

演示:Fiddle

【讨论】:

错过了data。你明白了。 @Anup:越来越未定义。 @Kango 在这种情况下,您提供的 html 可能与您页面中的内容不同...您是否查看了附加的演示 我的问题。我的 html 结构略有不同。【参考方案2】:

尝试使用 Jquery 选择器提供的context 功能,

 $('.link-redirect').click(function()
      var link = $($(this).data('target') , $(this)).attr('href');           
      alert(link);           
 );

DEMO

【讨论】:

@sarath 当然 :) 但我猜 OP 并没有问这个问题。 @Kango 你测试过我提供的demo了吗?【参考方案3】:

你应该把你的anchor tag放在你的div element中,不要用each() or loops绑定click event试试这个,

$('.link-redirect').on("click", function (e) 
    var self = $(this);
    var link = self.find('a').attr('href');
    alert(link);
);

Demo

【讨论】:

【参考方案4】:

这是最简单的方法:

$('.title-link').on("click", function () 
   alert($(this).attr("href"));

);

jsfiddle

【讨论】:

以上是关于每个类的jquery单击事件以查找href属性的主要内容,如果未能解决你的问题,请参考以下文章

jq事件冒泡问题

jQuery框架使用,jq选择器,jq操作页面内容, jq操作类名,jq操作全局属性,jq获取盒子信息,jq获取位置信息,js/jq页面加载完毕事件,jq事件

JQ 的class类的操作 效果 遍历 内置遍历数组的函数 事件

python前端jQuery高级

JQ——事件(鼠标按键)

jq绑定事件的4种方式