Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取id';使用javascript从li项中通过数据属性检索_Javascript_Jquery_Html - Fatal编程技术网

获取id';使用javascript从li项中通过数据属性检索

获取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

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').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的回答:)它有效吗?如果您在截止日期=)内,只需快速修复)