Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制AJAX响应中的元素数_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 限制AJAX响应中的元素数

Javascript 限制AJAX响应中的元素数,javascript,jquery,ajax,Javascript,Jquery,Ajax,AJAX响应返回元素列表: <a href="/1/">One</a> <a href="/2/">Two</a> <a href="/3/">Three</a> 这就是我目前正在尝试的,但是我得到了一个未捕获的错误:语法错误,无法识别的表达式,然后是整个响应。下面是我要做的: $.ajax({ url: '/' + page, success: function (res) { btn.a

AJAX响应返回
元素列表:

<a href="/1/">One</a>
<a href="/2/">Two</a>
<a href="/3/">Three</a>

这就是我目前正在尝试的,但是我得到了一个未捕获的错误:语法错误,无法识别的表达式,然后是整个响应。

下面是我要做的:

$.ajax({
    url: '/' + page,
    success: function (res) {
        btn.after(res.split('</a>').splice(0, num).join('</a> ') + '</a>');
    } });
$.ajax({
url:“/”+第页,
成功:功能(res){
btn.after(res.split('').splice(0,num).join('')+'');
} });
它将其拆分,只返回您想要的元素


JSFiddle:

您遇到的问题是上下文选择器不返回任何内容。一个简单的测试表明了这一点

console.log($('a', $(res)))
把它打碎。您需要对从服务器返回的内容使用筛选器,因为它是锚的列表

var content = $(res);
var anchors = content.filter("a");
var anchorLimit = anchors.slice(0,20);
btn.after(anchorLimit);
另一种选择是执行您正在执行的操作,但将其包装在一个div中

$('a', $("<div>" + res + "</div>"))
$('a',$(“”+res+“”)

响应的末尾有两个关闭的
div
元素,但没有两个打开,因此我必须创建一个:

$.ajax({
    url: '/' + page,
    success: function (res) {
        btn.after($('a', $($.trim('<div><div>'+res))).slice(0,20));
    }
});
$.ajax({
url:“/”+第页,
成功:功能(res){
btn.在($('a',$($.trim(''+res)))之后。切片(0,20));
}
});

代码不应该是
$(res,'a')。切片(0,20)
您确定没有空格或奇怪字符,并且响应是有效的HTML。Ajax响应是在
res
raw data还是JSON中?
btn.after($('').append($.trim(res)).find('a').filter(':lt(21))@JakeGould这只是原始数据。
$.ajax({
    url: '/' + page,
    success: function (res) {
        btn.after($('a', $($.trim('<div><div>'+res))).slice(0,20));
    }
});