我正在尝试获取无序列表中每个项目的类,并将其转换为序列化字符串,可以作为AJAX调用发回。
经过一天乱搞jQuery(我喜欢但不太熟悉 - 似乎比服务器端的东西更难),我仍然没有进一步。任何人都可以提供一些指示吗?
类似
<ul>
<li class="expanded">Some text</li>
<li class="expanded">Some text</li>
<li>Some text</li>
<li>Some text</li>
<li class="expanded">Some text</li>
</ul>
会产生类似
的字符串1,1,0,0,1
易于存储和解析。
我最终要做的是创建一个具有以下特征的可扩展列表:
我一直在
使用优秀的例子#3 中记录的http://www.i-marco.nl/weblog/jquery-accordion-3/
http://www.i-marco.nl/weblog/archive/2010/02/27/yup_yet_another_jquery_accordi
作者说“你可以通过让你的页面生成代码设置这个类来控制手风琴的状态”,但遗憾地没有提供如何将状态输出的指示。
有人可以建议如何做到这一点的积极策略吗?
我试图遍历每个项目来获取类,以便序列化项目索引列表 - 我想像
var target = $('ul.menu > li.active');
$.each(target, function(index, attributes) {
alert(attributes.attr('class'));
});
可能是一个开始,但尝试不同的事情的时间甚至没有让我那么远 - 只列出当前状态。
答案 0 :(得分:3)
你的意思是这样的吗?
var status = $('ul > li').map(function() {
return +$(this).hasClass('expanded');
}).get().join(',');
这将创建一个0
和1
的数组,并将其与,
连接以创建字符串。
注意:我使用一元+
将true
和false
转换为数字表示形式1
和0
。
参考: jQuery.fn.map
,jQuery.fn.hasClass
,jQuery.fn.get
,Array.prototype.join