我现在正处理一个问题的大爆炸。我试图用jQuery从“响应”到“评论”的最后更改链接的哈希标记。我有一个简单的脚本应该这样做,但它不起作用。链接不会改变。但是,Firebug没有显示任何错误,当我在Firebug的控制台中运行代码时,它就像我想要的那样工作。为什么这不能独立工作?有没有人有解决方案,我对这个问题很敏感。
(function ($) {
$(document).ready(function() {
$("a[href$='respond']").each(function() {
$(this).attr("href", $(this).attr('href').replace("respond", "comments"));
});
});
})(jQuery.noConflict());
非常感谢,我知道这可能是一个痛苦的考验,但我真的很感激。
答案 0 :(得分:5)
您的代码应该正常工作,但您的脚本标记格式不正确。您有text/javscript
而不是text/javascript
。此外,您可以稍微优化您的代码:
<script type="text/javascript">
jQuery(document).ready(function($){
$("a[href$='respond']").attr("href", function(index, attr){
return attr.replace("respond", "comments");
});
}).noConflict();
</script>
答案 1 :(得分:4)
您使用$(document).load()
代替$(document).ready()
。
(function ($) {
//---------------v
$(document).load(function() {
$("a[href$='respond']").each(function() {
$(this).attr("href", $(this).attr('href').replace("respond", "comments"));
});
});
})(jQuery.noConflict());
答案 2 :(得分:0)
为什么不呢:
jQuery(function($) {
$("a[href$='respond']").each(function() {
$(this).attr("href", $(this).attr('href').replace("respond", "comments"));
});
});
如果将函数传递给jQuery构造函数,它会将其添加到DOM Ready侦听器并自动将其作为参数传递。