jQuery选择器用于具有href属性中含有#的链接

5 浏览
0 Comments

jQuery选择器用于具有href属性中含有#的链接

我尝试使用这个jQuery选择器:

$("a:has(href*=#)").click(function() {
     alert('works');
});  

\n但是它似乎不起作用。我想选择所有href属性中含有锚点(#符号)的a标签。

0
0 Comments

问题出现的原因是作者想要选择具有"# "的href属性的链接,但是他使用了错误的选择器,导致选择不到想要的元素。他使用了attribute-contains选择器,但是这个选择器是用来选择包含指定值的属性的元素,而不是以指定值开头的属性的元素。API中明确说明了被评估的值必须用引号括起来。

解决方法是使用attribute starts with选择器来选择以指定值开头的属性的元素。作者提供了一个示例代码来解决这个问题:

$('a[href^="#"]').click(function(){
    alert('Works!');
});

这段代码使用了attribute starts with选择器,并绑定了一个点击事件,当满足选择器条件的链接被点击时,弹出一个提示框。还有一个jsfiddle链接,可以查看他提供的示例代码的效果。

然后,有人指出作者的代码中有一个小错误,即选择器中的"^"符号应该在等号之前。作者进行了修正,将选择器修改为$('a[href=^"#"]')

通过以上内容,我们可以整理出以下文章:

有人想要选择具有"# "的href属性的链接,但是他使用了错误的选择器,导致选择不到想要的元素。他使用了attribute-contains选择器,但是这个选择器是用来选择包含指定值的属性的元素,而不是以指定值开头的属性的元素。API中明确说明了被评估的值必须用引号括起来。

为了解决这个问题,他可以使用attribute starts with选择器来选择以指定值开头的属性的元素。他提供了以下示例代码来解决这个问题:

$('a[href^="#"]').click(function(){
    alert('Works!');
});

这段代码使用了attribute starts with选择器,并绑定了一个点击事件,当满足选择器条件的链接被点击时,弹出一个提示框。他还提供了一个jsfiddle链接,可以查看他提供的示例代码的效果。

然后,有人指出他的代码中有一个小错误,即选择器中的"^"符号应该在等号之前。作者进行了修正,将选择器修改为$('a[href=^"#"]')

0
0 Comments

问题的出现原因是提问者想要选择带有特定属性的链接,这个属性是链接的href属性中包含'#'的。

解决方法是使用jQuery的属性选择器来选择具有特定属性的链接。在这种情况下,可以使用属性包含选择器(*=)或属性开始选择器(^=)来选择带有'#'的链接。

使用属性包含选择器可以选择任何href属性中包含指定字符串的链接。代码如下:

$("a[href*='#']").click(function() {
    alert('works');
});

使用属性开始选择器可以选择任何href属性以指定字符串开头的链接。代码如下:

$("a[href^='#']").click(function() {
    alert('works');
});

需要注意的是,提问者最初使用的是属性开始选择器,这正是他真正想要的。其他人可能没有理解他的问题,但是他最终找到了自己想要的解决方法。

在对问题进行进一步讨论时,提问者表示他的问题比看起来更复杂。然而,使用jQuery往往可以找到比预期更简单的解决方法。

最后,提问者对属性开始选择器表示感谢,并指出这正是他一直在寻找的解决方法。

0