获取id';使用javascript从li项中通过数据属性检索
JavaScript获取id';使用javascript从li项中通过数据属性检索,javascript,jquery,html,Javascript,Jquery,Html,JavaScript var sessions = []; $('.rightDiv').each(function(index) { var session = $.trim($(this).text().slice(0, -1)).split("×"); var sessionData = []; for (var i = 0; i < session.length; i++) { var ids = $(this).find('li').dat
var sessions = [];
$('.rightDiv').each(function(index) {
var session = $.trim($(this).text().slice(0, -1)).split("×");
var sessionData = [];
for (var i = 0; i < session.length; i++) {
var ids = $(this).find('li').data('id');
var s = {
subjectOrder: i,
subjectID: ids
};
sessionData.push(s);
}
var ses = {
sessionNo: index,
sessionData: sessionData
};
sessions.push(ses);
});
{"sessionNo":"0","sessionData":[{"subjectOrder":"0","subjectID":"1"},{"subjectOrder":"1","subjectID":"1"}]}
我的问题
上面的代码所做的是从ul类中检索会话号:
class=“sortable rightDiv session4”
以及从数据id中检索li的每个id
在这种情况下,它会在li
项中进行精细循环,但只显示第一个li
元素的id。
应该是:
{"sessionNo":"0","sessionData":[{"subjectOrder":"0","subjectID":"1"},{"subjectOrder":"1","subjectID":"2"}]}
知道怎么回事吗?因为您使用的是$(this)。查找('li')。数据('id')
,它将始终返回第一个li
数据属性的值
用于迭代和创建数组
var sessionData = [];
$(this).find('li').each(function (index, elem) {
sessionData.push({
subjectOrder: index,
subjectID: $(elem).data('id')
});
})
因为您使用的是$(this).find('li').data('id')
,它将始终返回第一个li
数据属性的值
用于迭代和创建数组
var sessionData = [];
$(this).find('li').each(function (index, elem) {
sessionData.push({
subjectOrder: index,
subjectID: $(elem).data('id')
});
})
更改:
var ids = $(this).find('li').data('id');
致:
更改:
var ids = $(this).find('li').data('id');
致:
谢谢你的回复,这有助于澄清我们的问题,但我将接受Saptal的回答:)它有效吗?如果你在最后期限内,只是一个快速修复=))谢谢你的回复,这有助于澄清我们的问题,但我将接受Saptal的回答:)它有效吗?如果您在截止日期=)内,只需快速修复)