使用JavaScript的Items.push变量
我有一个JSON数组,我在我的应用程序中操作它使用JavaScript的Items.push变量,javascript,jquery,cordova,getjson,Javascript,Jquery,Cordova,Getjson,我有一个JSON数组,我在我的应用程序中操作它 ... $.each(data, function(key, val) { val = link + val; foto = val; foto = foto.substr(0, foto.lastIndexOf(".")) + ".jpg"; /* Visualizza */ var elem = document.getElementById("archivio-num"); elem.inner
...
$.each(data, function(key, val) {
val = link + val;
foto = val;
foto = foto.substr(0, foto.lastIndexOf(".")) + ".jpg";
/* Visualizza */
var elem = document.getElementById("archivio-num");
elem.innerHTML = '<a href="#"><img src="' + foto + '"></a>';
elem.firstChild.onclick = function() {
cordova.exec("ChildBrowserCommand.showWebPage", val);
};
items.push('<li id="' + key + '">' + elem.innerHTML + '</li>');
});
...
。。。
$。每个(数据、函数(键、值){
val=link+val;
foto=val;
foto=foto.substr(0,foto.lastIndexOf(“.”)+“.jpg”;
/*可视化*/
var elem=document.getElementById(“archivio num”);
elem.innerHTML='';
elem.firstChild.onclick=function(){
cordova.exec(“ChildBrowserCommand.showWebPage”,val);
};
items.push(““+elem.innerHTML+” ”);
});
...
现在我试着把所有的元素都推到外面,这些元素都打包在var元素里面。
Puttin only+elem+给我一个错误[ObjectHtmlDiscovery]。
这可能吗?进一步利用jQuery,您可能希望尝试以下方法:
...
var $ul = $("<ul/>");//jQuery object containing a dummy UL element in which to accumulate LI elements.
$.each(data, function(key, val) {
var url = link + val;
var foto = url.substr(0, url.lastIndexOf(".")) + ".jpg";
var $a = $('<a/>').attr('href',url).append($("<img/>").attr('src',foto)).on('click', function() {
cordova.exec("ChildBrowserCommand.showWebPage", $(this).attr('href'));
return false;
});
$ul.append($('<li/>').attr('id',key).append($a));
});
$("#archivio-num").html($a);
...
。。。
var$ul=$(“
”)//包含虚拟UL元素的jQuery对象,要在其中累积LI元素。
$。每个(数据、函数(键、值){
var url=link+val;
var foto=url.substr(0,url.lastIndexOf(“.”)+“.jpg”;
var$a=$('').attr('href',url).append($('').attr('id',key).append($a));
});
$(“#archivio num”).html($a);
...
在这里,不是将HTML累积到数组中,而是将实际的LI元素累积到jQuery包装的UL元素中,该元素可用于代码后面的进一步处理(例如插入DOM)。
<script type="text/javascript">
$.getJSON('http://www..../json.php', function(data) {
var items = [];
var url;
var foto;
var link = 'http://www.bla.com/';
var $div = $("<div/>");
$.each(data, function(key, val) {
url = link + val;
foto = url.substr(0, url.lastIndexOf(".")) + ".jpg";
var $a = $('<a>').attr('href',url).append($("<img/>").attr('src',foto)).on('click',function(){
cordova.exec("ChildBrowserCommand.showWebPage", $(this).attr('href'));
return false;
});
$div.append($('<div/>').attr('id',key).append($a));
});
$("#archivio-num").html($a);
});
</script>
$.getJSON('http://www..../json.php,函数(数据){
var项目=[];
var-url;
var foto;
var-link=http://www.bla.com/';
变量$div=$(“”);
$。每个(数据、函数(键、值){
url=link+val;
foto=url.substr(0,url.lastIndexOf(“.”)+“.jpg”;
var$a=$('').attr('href',url).append($('').attr('id',key).append($a));
});
$(“#archivio num”).html($a);
});
您必须使用dom元素,如果您序列化div,您将丢失事件处理程序context谢谢您的帮助,我刚刚接触javascripting,使用jquery我根本无法让它工作。检查代码=>非常好!是我的代码需要调试,还是你做了完全不同的事情?