Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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 jquery ajax无法循环遍历找到的数据_Javascript_Jquery_Ajax_Each - Fatal编程技术网

Javascript jquery ajax无法循环遍历找到的数据

Javascript jquery ajax无法循环遍历找到的数据,javascript,jquery,ajax,each,Javascript,Jquery,Ajax,Each,我想循环通过一个文件,这是加载了ajax,但它不会循环,我已经尝试了一些事情,但我不能让它工作 //jquery $.ajax({ url: 'file.html', type: "GET", dataType: "html", success: function(data) { $(data).find('div').each(function(i){ alert('found') }); },

我想循环通过一个文件,这是加载了ajax,但它不会循环,我已经尝试了一些事情,但我不能让它工作

//jquery

$.ajax({
    url: 'file.html',
    type: "GET",
    dataType: "html",
    success: function(data) {

        $(data).find('div').each(function(i){
            alert('found')
        });

    },
    error: function(){
        alert('oeps...')
    }                           
});
//file.html

<div>
// content goes here
</div>

<div>
// content goes here
</div>

<div>
// content goes here
</div>

...


...    
您不需要将html指定为数据类型,它不是必需的

因此,请删除以下行

dataType: "html"
您不需要将html指定为数据类型,它不是必需的

因此,请删除以下行

dataType: "html"

很难知道你想做什么,但我猜是这样的:

$.ajax({
    url: 'file.html',
    type: "GET"
    success: function(data) {
        $.each($('div', data.outerHTML), function(index, item) {
            console.log(item);
        });
    },
    error: function(){
        console.log('error')
    }                           
});

很难知道你想做什么,但我猜是这样的:

$.ajax({
    url: 'file.html',
    type: "GET"
    success: function(data) {
        $.each($('div', data.outerHTML), function(index, item) {
            console.log(item);
        });
    },
    error: function(){
        console.log('error')
    }                           
});
您需要更改。查找到。筛选。这是因为.find搜索所有元素的子代,但由于html文件只是s,因此需要使用.filter来查找它们

演示:

您需要更改。查找到。筛选。这是因为.find搜索所有元素的子代,但由于html文件只是s,因此需要使用.filter来查找它们


演示:

之所以不起作用,是因为在数据中查找子体,所有这些div都位于根目录下

您可以创建一个空div,然后将该div的html设置为您的数据。这将确保查找工作,因为div随后将成为子代

$.ajax({
    url: 'file.html',
    type: "GET"
    success: function(data) {
        $('<div/>').html(data).each(function(index, item) {
            console.log(item);
        });
    },
    error: function(){
        console.log('error')
    }                           
});

不起作用的原因是因为在数据中查找子体,所有这些div都位于根

您可以创建一个空div,然后将该div的html设置为您的数据。这将确保查找工作,因为div随后将成为子代

$.ajax({
    url: 'file.html',
    type: "GET"
    success: function(data) {
        $('<div/>').html(data).each(function(index, item) {
            console.log(item);
        });
    },
    error: function(){
        console.log('error')
    }                           
});
在这种情况下,.find不起作用,因为您正在搜索的HTML不包含任何div子节点。要解决此问题,请首先将项目附加到某个容器,然后使用.find

在这种情况下,.find不起作用,因为您正在搜索的HTML不包含任何div子节点。要解决此问题,请首先将项目附加到某个容器,然后使用.find



控制台中有错误吗?如果Starx的建议没有帮助,最好让JSFIDLE演示来检查它。不,我没有收到任何错误,如果我知道该去哪里看,那就好了;控制台中有错误吗?如果Starx的建议没有帮助,最好让JSFIDLE演示来检查它。不,我没有收到任何错误,如果我知道该去哪里看,那就好了;这是完全正确的,事实上,如果您返回HTML,您应该使用它。如果您删除数据类型,它将不起作用,因为默认情况下,数据类型将尝试确定它是什么。@user759235,实际上不是,当您将数据作为$data传递时,它将立即成为jQuery对象。hmmm好的,但当我删除它时,它不会运行。这是完全有效的,事实上,如果返回HTML,您应该使用它。如果删除数据类型,它将不起作用,因为默认情况下,数据类型将尝试检查它是什么。@user759235,实际上不是,当您将数据作为$data传递时,它将立即成为jQuery对象。hmmm好的,但当我删除它时,它不会运行$'div',数据与$data完全相同。查找'div'。@Rocket-oops,忘了什么!$'div',数据与$data完全相同。找到'div'。@Rocket-oops,忘了什么!这是不正确的,查找不起作用,因为它们不是后代,也不是因为它们不在DOM中。@Interstarr\u编码器感谢您的输入,我已经更新了答案。这是不正确的,查找不起作用,因为它们不是后代,也不是因为它们不在DOM中。@Interstarr\u编码器感谢您的输入,我已经更新了答案。是的,你是对的,找到的是搜索儿童,我真是太蠢了。谢谢从技术上讲,它搜索所有的后代,不仅是孩子,还有孩子的孩子。@Interstarr_Coder:真的:-你说得对,查找就是搜索孩子,我真是太蠢了。谢谢从技术上讲,它搜索所有的后代,不仅是孩子,还有孩子的孩子。@Interstarr_编码器:对:-P