为什么我不能通过jQuery更改href值?

时间:2015-09-07 14:02:48

标签: javascript jquery

以下是我的代码..

var content = $("<a href=\"http://www.test.com/test?test1&test2中文\">XXXX</a>");

content.find("a").each(function() {
  var value = $(this).attr('href');
  $(this).attr('href', encodeURI(value));
  alert(value);
});​

然而,它一直显示错误。 如何使这段代码能够编码我想要编码的网址。

3 个答案:

答案 0 :(得分:4)

而不是content.find('a')使用content.filter('a')。因为现在你content只是一个元素的数组(即。<a>),所以<a>和{{1}内不再有<a> }失败了。

所以.find('a')可以安全使用。

Demo

答案 1 :(得分:0)

此处无需使用 JQuery.find ,因为内容变量只有标记,并且您想要应用 encodeURI 为您的网址。

对于该要求,下面的代码就足够了。

$(content).each(function(){ 
    var value = $(this).attr('href');
    $(this).attr('href', encodeURI(value));
    alert($(this).attr('href'));
    }
);

希望它对你有所帮助。

答案 2 :(得分:0)

也许你应该添加一个ID(如果你想为多个元素使用它,然后为元素创建一个特定的类并通过$(".classname")链接)到你的链接,然后使用像这样的普通查询< / p>

var yourLink = $("#yourID");
yourLink.attr('href', encodeURI(value));​

并确保您的value中包含某些内容。如果.attr(...)仍无效,请尝试.prop("href", encodeURI(value))