Я хотел бы создать базовую универсальную функцию с jquery, чтобы поместить все элементы списка html в массив. Кажется, все в порядке, но я встречаю некоторые проблемы, чтобы получить возвращаемое значение. Я знаю, что это основная проблема, поэтому я надеюсь, что вы поможете мне решить ее.JQuery: получение возвращаемого значения функции
<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>
Почему '$ (функция() {' внутри вашей функции? Когда вы вызываете свою функцию, она не выполняет ее, так как вы помещаете функцию '$ (function() {' в свою функцию, чтобы она ожидала загрузки DOM. Поместите 'var ulChildren = listeToArrayB Yid ("песни1"); window.console.log (ulChildren); 'внутри DOM готов и удаляется из вашей функции, и он будет работать. – putvande
Благодарим вас за помощь – zm455