$('#wpf-wrapper a').live('click',function() {
$(this).attr('href', $(this).attr('href') + "#wpf-wrapper");
});
但是,如果有一个链接已经有例如href="#"
我不想再添加一个。为什么以下代码不起作用?
$('#wpf-wrapper a').not('#wpf-wrapper a[href="#"]').live('click',function()
$(this).attr('href', $(this).attr('href') + "#wpf-wrapper");
});
突然间我的链接都没有添加#wpf-wrapper?
答案 0 :(得分:5)
此选择器错误
$('#wpf-wrapper a').not('#wpf-wrapper a[href="#"]')
应使用attribute contains selector并使用正确的:not()
选择器
$('#wpf-wrapper a:not([href*="#"])')
答案 1 :(得分:1)
这是另一种方式:
$('#wpf-wrapper a').each(function(){
if( !this.hash ) this.hash = "#wpf-wrapper";
});
您可以使用hash
元素上的原生a
属性来设置它,而不是使用jQuery的.attr()
方法。
如果您在点击处理程序中执行此操作的原因是.each()
不起作用,则可能是您在加载DOM之前运行代码。
如果是这样,请执行以下操作:
$(function() {
$('#wpf-wrapper a').each(function(){
if( !this.hash ) this.hash = "#wpf-wrapper";
});
});
如果您要动态创建元素,请在创建时添加哈希值。