我正在学习jquery,我想在每个范围内显示数组元素。这是我的功能:
function display_locations() {
$('document').ready(function () {
array = ['london', 'ontario', 'san francisco', 'new york'];
var newHTML = [];
for (var i = 0; i < array.length; i++) {
newHTML.push('<span>' + array[i] + '</span>');
}
$("places-panel").html(newHTML.join(""));
});
}
在HTML文件中我有:
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery /1.4/jquery.min.js?ver=3.2.1'></script>
<div id="footer">
<div id="places-panel">
This will be replaced by new places from array<br>
</div>
<div id="button-display">
<button onclick="display_locations();">Get places</button>
</div>
</div>
我希望每次单击按钮时都替换文本(每个元素都被包装)。但不知何故,我认为我弄错了代码,所以它不起作用。
你可以给我任何暗示吗?
谢谢
答案 0 :(得分:1)
这可能有效:
function display_locations() {
var array = ['london', 'ontario', 'san francisco', 'new york'];
var newHTML = "";
for (var i = 0; i < array.length; i++) {
newHTML = newHTML + '<span>' + array[i] + '</span>';
}
$("#places-panel").html(newHTML);
}
$('button').click( function () {
display_locations();
})
我将newHTML
转换为字符串,因为它更容易处理数组,我还创建了<button>
click
处理程序来执行请求的更改,最后还更正了错过的#
为占位符id
(ID引用了#
加上ID名称,带有.
的类加上类名和HTML元素,只有它们的名称,即{ {1}})。
我还删除了函数$('button')
,但我刚刚更改了代码以使函数更接近原始请求。