gpt4 book ai didi

javascript - JSon 和 Jquery Accordion

转载 作者:行者123 更新时间:2023-11-30 06:01:17 24 4
gpt4 key购买 nike

这让我把 BATTY 逼疯了。这基本上就是我想要完成的。你会看到 Json 有两个不同的部门“办公室”和“储藏室”我想要完成的是按他们所在的部门安排每个人。问题是 HTML 需要看起来像这样

    <h3><a href="#">Section 1</a></h3>
<div>
<p>
First Paragraph
</p>

<p>
Second Paragraph
</p>

<p>
Third Paragraph
</p>
</div>

但不幸的是我似乎无法获得 </div>在每个部分的最后一段末尾的正确位置标记

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="http://jqueryui.com/themes/base/jquery.ui.all.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>


<script type="text/javascript" src="http://jqueryui.com/ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="http://jqueryui.com/ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="http://jqueryui.com/ui/jquery.ui.accordion.js"></script>

<script type="text/javascript">

$(document).ready(function () {
var contacts = [{"displayname":"Bruce Lee","email":"Bruce.lee@karate.com","department":"stockroom"},
{"displayname":"Your Momma","email":"Your.Momma@Yourmom.com ","department":"stockroom"},
{"displayname":"Bob","email":"Bob@bob.com ","department":"Office"},
{"displayname":"Cathy","email":"Cathy@Cathy.com ","department":"Office"},
{"displayname":"mike","email":"mike@Cathy.com ","department":"Office"},
{"displayname":"scott","email":"scott@Cathy.com ","department":"Office"}
];
var contacts2 = contacts;
var r = 1;

var lastvalue = 'blah';
for(var i=0; i <=contacts.length; i++)
{
if(contacts[i].department != null)
{
if(lastvalue != contacts[i].department)
{
if(i<1)
{
$('#accordion').append('</div><h3><a href="#">' + contacts[i].department + '</a></h3>');
$('#accordion').append('<div><p><a href="mailto:'+ contacts[i].email +'">' + contacts[i].displayname + '</a></p>');
}else{
$('#accordion').append('<h3><a href="#">' + contacts[i].department + '</a></h3>');
$('#accordion').append('<div><p><a href="mailto:'+ contacts[i].email +'">' + contacts[i].displayname + '</a></p>');
}
}else{
$('#accordion').append('<p><a href="mailto:'+ contacts[i].email +'">' + contacts[i].displayname + '</a></p>');

}

lastvalue = contacts[i].department;
r++;
}
}
});
$(function() {
$( "#accordion" ).accordion();
});

</script>
</head>
<body>
<div id="contactlist">
<div id="accordion">

</div>
</div>

</body>
</html>

最佳答案

您可能希望将其更改为 jquery each 循环并直接在其中处理 json 对象。你每次都获得 Accordion 级别的原因是你的循环每次都插入一个 h3 。我提供的代码几乎可以满足您的需求。

编辑:这是我的 fork jsfiddle 的链接 => http://jsfiddle.net/TTV6d/12/

希望对你有帮助

var departmentlist=new Array();
$.each(contacts, function(i,contact) {
//insert the departments
if (contact.department != null && $('#' + contact.department).length == 0) {
$('#accordion').append('<h3 id='+ contact.department +'><a href="#">' + contact.department + '</a></h3>');
departmentlist.push(contact.department);
}
//insert contacts in the accordion
$('#' + contact.department).after('<p><a href="mailto:' + contact.email + '">' + contact.displayname + '</a></p>');
});
$.each(departmentlist, function(i,list) {
$("#" + list).nextUntil("h3").wrapAll("<div></div>");
});

关于javascript - JSon 和 Jquery Accordion ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8365047/

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