以下是我的代码..
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);
});
然而,它一直显示错误。 如何使这段代码能够编码我想要编码的网址。
答案 0 :(得分:4)
而不是content.find('a')
使用content.filter('a')
。因为现在你content
只是一个元素的数组(即。<a>
),所以<a>
和{{1}内不再有<a>
}失败了。
所以.find('a')
可以安全使用。
答案 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))