【发布时间】:2012-01-30 18:31:39
【问题描述】:
我尝试使用这个 jQuery 选择器:
$("a:has(href*=#)").click(function() {
alert('works');
});
但它似乎不起作用。我想选择所有在 href 属性中具有锚点的标签(那里有 # 符号)
【问题讨论】:
我尝试使用这个 jQuery 选择器:
$("a:has(href*=#)").click(function() {
alert('works');
});
但它似乎不起作用。我想选择所有在 href 属性中具有锚点的标签(那里有 # 符号)
【问题讨论】:
$("a[href*=#]").click(function(e) {
e.preventDefault();
alert('works');
});
【讨论】:
<a href='#'> 而不是<a href='link.com/page/#hash'> 的案例
#:$('a[href*=\\#]')。 stackoverflow.com/a/18365991/553921
您必须使用attribute starts with selector 进行选择:
$('a[href^="#"]').click(function(){
alert('Works!');
});
查看my jsfiddle!
【讨论】:
attribute-contains selector,因为href 属性不“等于”#。此外,API 明确指出,被评估的值必须被引用。
<a href='#'> 的案例,而不是 <a href='index.php#header'> 之类的案例。另外,感谢您指出引用 =D。
#header,我想到的方法是在href中选择所有<a>和#
$('a[href=^"#"]') 阻止选择像http://en.wikipedia.org/wiki/Random#A_number_is_.22due.22 这样的href 更新我的答案!
^ 符号应该在等号之前
*= 将在任何地方过滤包含给定字符串的属性
$("a[href*='#']").click(function() {
alert('works');
});
还要注意
$("a[href^='#']").click(function() {
alert('works');
});
将选择任何其href 以#开头的锚点
【讨论】:
^= 选择器,这是我试图找到的!