gpt4 book ai didi

javascript - jQuery 单页应用程序动态 div

转载 作者:行者123 更新时间:2023-12-03 09:49:45 25 4
gpt4 key购买 nike

我有一个 jQuery 单页应用程序,它可以工作,但不是我想要的方式。我有一个从 JSON 文件读取的县列表(该列表可以过滤)。选择一个后,它会显示为一个超链接,链接到另一个“页面”,其中包含该县的一个城镇(“页面”实际上只是同一页面中的一个 div)。问题是我必须事先手动创建 div。例如,如果 JSON 文件中有五个项目,而我想再添加一个,则必须在页面中手动添加一个额外的 div。它对于县来说工作正常,我可以向 JSON 添加额外的县,它会构建一个额外的超链接,但对于它链接到的“页面”,我需要在 html 中创建一个新的 div。当我动态创建 div 时(在 Javascript 代码中的内部“each”下),当您单击链接时不会发生任何情况,因为 div 不存在于 html 中。有针对这个的解决方法吗? (见下面的代码)

HTML (with js):



<!doctype html>
<html>
<head>
<script src="js/jquery-1.11.2.min.js"></script>
<script src="jquery.mobile-1.4.5/jquery.mobile-1.4.5.js"></script>
<link rel="stylesheet" href="jquery.mobile-1.4.5/jquery.mobile-1.4.5.css"></script>
<title>How to Parse a JSON file using jQuery</title>

</head>
<body>

<div data-role="page">

<a href="#myKoolPanel" class="ui-btn ui-icon-navigation ui-btn-icon-left" data-iconpos="notext">Menu</a>
<div data-role="content">
<div id="results">
<ul id="mynewlist" data-role ="listview" data-autodividers="true" data-filter="true" data-filter-reveal="true">


</ul>

</div>
</div>

<div data-role="panel" class="cd-panel from-left" data-position="left" data-position-fixed="false" data-display="reveal" id="myKoolPanel" data-theme="a">

<ul id ="myul" data-role="listview" data-theme="a" data-divider-theme="a" style="margin-top:-16px;" class="nav-search">

<li>
<a href="Test1.html">Towns in Ireland</a>
</li>
<li>
<a href="Test2.html">Map of Ireland</a>
</li>
</ul>

</div>

</div>

<script>

$(document).ready(function(){

$.getJSON( "data.json", function( data ) {

var items = [];
var z=0;
$.each( data, function( i, item ) {
z=z+1;

items.push('<li><a href=#textcontainer'+z+'>' + i + '</a></li>');
$.each(item, function(property, value) {

$('#textcontainer'+z).append(value);
});


});

$('#mynewlist').append( items.join('') );
});

});


</script>
<div id ="textcontainer1"> </div>
<div id ="textcontainer2"> </div>
<div id ="textcontainer3"> </div>
<div id ="textcontainer4"> </div>
<div id ="textcontainer5"> </div>
</body>
</html>

JSON 文件:

{


"Kerry": {
"town": "Kenmare"

},


"Cork": {
"town": "Mallow"

},


"Limerick": {
"town": "Charleville"

},


"Meath": {
"town": "Trim"

},


"Waterford": {
"town": "Lismore"

}

}

最佳答案

使用 AngularJs 就可以解决这个问题。

定义js文件如下

var app = angular.module('app', []);
app.controller('ctrl', function ($scope) {
var data;
$scope.data =[{
"name":"Kerry",
"town": "Kenmare"
},
{
"name":"Cork",
"town": "Mallow"
},
{
"name":"Limerick",
"town": "Charleville"

},
{
"name":"Meath",
"town": "Trim"
},
{
"name":"Waterford",
"town": "Lismore"
}] ;
});

HTML 文件代码:

<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.js"> </script>
<script language="javascript" type="text/javascript" src="fileName.js"> </script>
</head>
<body>
<div ng-controller="ctrl">
<div ng-repeat="d in data">
{{d.name}} : {{d.town}}
</div>
</div>
</body>
</html>

我希望这会有所帮助。

关于javascript - jQuery 单页应用程序动态 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30912144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com