jQuery html()和&

时间:2009-09-09 15:13:55

标签: php jquery html

我在人员列表中进行搜索。我希望它能够在飞行中显示结果,所以它确实如此。但是我需要一个链接,它应该是这样的:

chatid=18&userid=45&create=new

但在结果显示后:

$.get('/ajax.php', {sec: 'search_users', ajax: 1, search_for: $(this).val()}, function(data)
{
    $(".rBoxContentStaff").html(data);
});

我得到了这个结果:

chatid=18&userid=45&create=new

链接不起作用。这似乎发生在html()和append()。

我找不到解决方法,所以我不得不改变链接的触发。

5 个答案:

答案 0 :(得分:2)

你说你试图设置正确的链接路径? 如果是这样,试试这个

$(".rBoxContentStaff").attr("href", data);

.html()正在改变&一个html& (&)但是使用.attr("href")设置了链接路径,它也适用于& s

答案 1 :(得分:2)

而不是这样做:

$(".rBoxContentStaff").html(data); });

试试这个:

$(".rBoxContentStaff").append(data); });

text()转义html字符...我找不到关于html()转义字符的任何内容(事实上,其文档似乎另有说明。
但是,在使用jmein的建议进行测试后,它会对特殊字符进行编码。 Append()没有这样做。

答案 2 :(得分:1)

html特殊字符,当ajax请求时,不要被浏览器解释..这就是链接出现的原因。你可以做的一件事是javascript中的sstring替换:

data = str.replace(/&/, "&");

答案 3 :(得分:0)

您应该尝试使用$ .ajax()函数而不是$ .get()。

使用$ .ajax(),您可以自己指定数据类型(并使用其他选项)。

尝试这样的事情:

$.ajax({
type: "GET",
url: "/ajax.php",
data: "sec=search_users&ajax=1&search_for="+$(this).val(),
cache: false,
dataType: "html",
success: function(html){
    $(".rBoxContentStaff").html(html);
} });

答案 4 :(得分:0)

还有转换获取文本的方法(<a />只是一个帮助者):

$('<a /'>).html(data).text()

这会将&amp;移至&,也会移动&imp;等所有其他特殊字符......