Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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:获取函数的返回值_Javascript_Jquery_Return Value - Fatal编程技术网

Javascript Jquery:获取函数的返回值

Javascript Jquery:获取函数的返回值,javascript,jquery,return-value,Javascript,Jquery,Return Value,我想用jquery创建一个基本的通用函数,将html列表的所有元素放入一个数组中。一切似乎都很好,但我在获取返回值时遇到了一些问题。我知道这是一个基本问题,所以我希望你能帮助我解决它 <script> function listeToArrayById(idListe){ $(function(){ var listChildren = $("#" + idListe).children(); //puts

我想用jquery创建一个基本的通用函数,将html列表的所有元素放入一个数组中。一切似乎都很好,但我在获取返回值时遇到了一些问题。我知道这是一个基本问题,所以我希望你能帮助我解决它

  <script>
        function listeToArrayById(idListe){ 
            $(function(){
                var listChildren = $("#" + idListe).children(); //puts all li children in var listChildren
                var arrayListChildren = [];
                $.each(listChildren, function(key, value){
                    arrayListChildren.push($(this).text());
                })
                return arrayListChildren; // here it's ok arrayListChildren = ["a", "b", "c"] 
            })
        }
        var ulChildren = listeToArrayById("list1");
        window.console.log(ulChildren); // here is my problem because ulChildren is undefined ... I should get an array ["a", "b", "c"]
    </script>
</head>
<body>
    <ul id="list1">
        <li>a</li>
        <li>b</li>
        <li>c</li>
    </ul>
    </body>

函数ListToArrayById(idListe){
$(函数(){
var listChildren=$(“#”+idListe.children();//将所有li子项放入var listChildren中
var arrayListChildren=[];
$.each(列表子项、函数(键、值){
arrayListChildren.push($(this.text());
})
返回arrayListChildren;//这里是ok arrayListChildren=[“a”、“b”、“c”]
})
}
var ulChildren=listedarraybyid(“列表1”);
window.console.log(ulChildren);//这是我的问题,因为ulChildren是未定义的。。。我应该得到一个数组[“a”,“b”,“c”]
  • a
  • b
  • c
您以错误的方式使用了
文档就绪处理程序

function listeToArrayById(idListe){ 
     var listChildren = $("#" + idListe).children();
     var arrayListChildren = [];
     $.each(listChildren, function(key, value){
        arrayListChildren.push($(this).text());
     })
     return arrayListChildren; // here it's ok arrayListChildren = ["a", "b", "c"] 
}

$(function(){
  var ulChildren = listeToArrayById("list1");
  console.log(ulChildren); 
});
您可以简化代码,如下所示

function listeToArrayById(idListe){ 
     return $("#" + idListe).children().map(function(){
           return this.textContent
     }).get();
}

为什么将
$(function(){
放在函数中?当您调用函数时,它不会执行它,因为您将
$(function(){
放在函数中,因此它会等待DOM加载。将
var ulChildren=listeToArrayById(“list1”);window.console.log(ulChildren)放在
在DOM中,准备好并从函数中删除,它就会工作。非常感谢,先生,它工作了!我在stackoverflow上享有“11”的声誉…我需要一个“15”声誉能够投票选出好的答案……这意味着我只需要一个人投票就可以得到15个声誉。@zm455你仍然可以接受答案。如果你觉得这个答案对你有帮助,那么试着按下我答案中的勾号。这不是强迫。:)有人对我的问题投了赞成票,所以现在我可以对你的答案投赞成票。非常感谢,先生。祝您愉快;-)