为什么jQuery attr(' href','#')设置一个空值而不是#

时间:2015-02-17 10:02:03

标签: javascript jquery

我正在使用jQuery版本1.8.3

jQuery('#edit_param_apppmStyleImage').attr("href","#");

HTML结果是

 <a id="edit_param_apppmStyleImage" href="">Edit</a>

它设置一个空值而不是“#”。并且这100%肯定是由我网站的其他人编写的特殊脚本引起的。

任何专家都可以提供一些关于可能导致这种奇怪行为的建议吗?顺便说一句,它通常设置其他值,如'##'。

2 个答案:

答案 0 :(得分:0)

  

它设置一个空值而不是“#”。而这肯定是100%造成的   通过我网站的其他人编写的特殊脚本。

您未提供有关您网站上运行的特殊脚本的任何详细信息。但是我会在加载所有内容(包括图像)后尝试运行脚本。在这种情况下,这就是我的想法;

  

当load元素和所有子元素都有时,load事件被发送到元素   已完全装满。

由于它与$(document).ready()函数略有不同,如果某些其他脚本覆盖了脚本的预期行为,则可能会有所不同。

尝试以下

jQuery(window).bind("load", function() {
   jQuery('#edit_param_apppmStyleImage').attr("href","#");
});

我们在这里做的是我们要延迟脚本的执行,直到加载整个窗口。由于$(document).ready()函数中的任何内容都在$(window).load()函数中的代码之前执行,因此我们减少了重写脚本的可能性。

不确定是否有效,但请试一试。

答案 1 :(得分:-3)

attr()替换为prop()

jQuery('#edit_param_apppmStyleImage').prop("href","#");