Jquery: 获取函数的 return 值
Jquery: getting return value of a function
我想用 jquery 创建一个基本的泛型函数,以将 html 列表的所有元素放入一个数组中。一切似乎都很好,但我在获取 return 值时遇到了一些问题。我知道这是一个基本问题,所以我希望你能帮助我解决它。
<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>
您使用的 document ready handler
有误,
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();
}
我想用 jquery 创建一个基本的泛型函数,以将 html 列表的所有元素放入一个数组中。一切似乎都很好,但我在获取 return 值时遇到了一些问题。我知道这是一个基本问题,所以我希望你能帮助我解决它。
<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>
您使用的 document ready handler
有误,
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();
}