我在人员列表中进行搜索。我希望它能够在飞行中显示结果,所以它确实如此。但是我需要一个链接,它应该是这样的:
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()。
我找不到解决方法,所以我不得不改变链接的触发。
答案 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()
这会将&
移至&
,也会移动&imp;
等所有其他特殊字符......