如何将数组项添加到 Jquery
我正在做一些非常简单的事情,一个简短的测验,我试图将我列在二维数组中的项目显示为
array.join()
方法,但它并没有真正做我想要的。 我想将它们放入列表中,然后为每个列表添加一个单选按钮。
我已经对Jquery进行了一次小小的飞跃,所以很多这是我对“语法”的不熟悉。 我浏览了他们的API, $.each
……? 我确信这就像for语句一样,我不能让它工作而不会崩溃我所拥有的一切。
这是HTML非常有趣的东西。
而且,这里有一些非常复杂的代码。 抓住你的帽子……
$(document).ready (function () { var array = [["Fee","Fi","Fo"], ["La","Dee","Da"]]; var q = ["Fee-ing?","La-ing? "]; var counter = 0; $('.myBtn').on('click', function () { $('#main_ .facts_div').text(q[counter]); $('.facts_div ul').append('' + array[counter]); counter++; if (counter > q.length) { $('#main_ .facts_div').text('You are done with the quiz.'); $('.myBtn').hide(); } }); });
尝试
和
jQuery(function ($) { // var array = [ ["Fee", "Fi", "Fo"], ["La", "Dee", "Da"] ]; var q = ["Fee-ing?", "La-ing?"]; var counter = 0; //cache all the possible values since they are requested multiple times var $facts = $('#main_ .facts_div'), $question = $facts.find('.question'), $ul = $facts.find('ul'), $btn = $('.myBtn'); $btn.on('click', function () { //display the question details only of it is available if (counter < q.length) { $question.text(q[counter]); //create a single string containing all the anwers for the given question - look at the documentation for jQuery.map for details var ansstring = $.map(array[counter], function (value) { return '' + value + ' ' }).join(''); $ul.html(ansstring); counter++; } else { $facts.text('You are done with the quiz.'); $(this).hide(); } }); // });
演示: 小提琴
您可以使用$.each
迭代array[counter]
并为您的选项创建li
元素:
var list = $('.facts_div ul'); $.each(array[counter], function() { $('').html(' ' + this).appendTo(list); }
第一个参数是您的数组,第二个参数是执行操作的匿名函数,其中将保存当前元素值。
另外,如果你这样做:
$('#main_ .facts_div').text(q[counter]);
你将用q[counter]
替换元素的内容,丢失你的ul
标签。 在这种情况下,您可以使用prepend
方法而不是text
来将此文本添加到标记的开头,或者创建一个新元素只是为了保存这段文本。