Javascript 将文本发送到数组中的特定li

Javascript 将文本发送到数组中的特定li,javascript,jquery,asp.net,webforms,jquery-ui-sortable,Javascript,Jquery,Asp.net,Webforms,Jquery Ui Sortable,我在ul中有许多li项目。我需要将所有li项添加到一个数组中,然后循环遍历该数组并对每个li中的值求和 该值表示项目将花费的小时数。第一项可能是2小时,第二项可能是5小时 对于每7.5小时,我需要在每个li的day字段中添加1天。因此,项目1、2和3将显示第1天。第4、5、6和7项将显示第2天等 以下是我到目前为止的情况: 列表数组: var list = document.getElementById("dropArea").getElementsByTagName("li"); 小时数:

我在ul中有许多li项目。我需要将所有li项添加到一个数组中,然后循环遍历该数组并对每个li中的值求和

该值表示项目将花费的小时数。第一项可能是2小时,第二项可能是5小时

对于每7.5小时,我需要在每个li的day字段中添加1天。因此,项目1、2和3将显示第1天。第4、5、6和7项将显示第2天等

以下是我到目前为止的情况:

列表数组:

var list = document.getElementById("dropArea").getElementsByTagName("li");
小时数:

var hrsArray = $("#sortable2 li").find("#hrsSpan").map(function () { return $(this).text() }).get();
var lengthArr = hrsArray.length;
for (var i = 0; i < lengthArr; i++) {
    hrsArray[i] = hrsArray[i].replace("Hours - (", "");
    hrsArray[i] = hrsArray[i].replace(")", "");
}
var hrsArray=$(“#sortable2 li”).find(“#hrsSpan”).map(函数(){return$(this.text()).get();
var lengthArr=hrsArray.length;
对于(变量i=0;i
这是我计算的总小时数。我可以将“1”发送到每个li的日跨度,但我不知道如何单独查看li:

//Add all the hrs together to get the total
for (var i in hrsArray) {
    total += hrsArray[i];
    //alert(list[i].toString());

    //Object found at this point, need to figure out how to send text to day span in it.
    if (total / 7.5 <= 1) {
        $('#sortable2 li').find('#day').html('1');
    }
}
//将所有小时相加,得到总小时数
用于(hrsArray中的var i){
总+=hrsArray[i];
//警报(列表[i].toString());
//对象,需要弄清楚如何将文本发送到其中的day span。
如果(total/7.5在执行
$('#sortable2 li').find('#day').html('1');
时,您在查找时丢失了jquery对象。您需要再次将其包装在$()中。下面是一种不必使用find的简单方法

$("#sortable2 #day").html(1)
下面是一个例子,当您执行
$('sortable2 li').find('#day').html('1');
时,它会工作。

您会在find中丢失jquery对象。您需要再次将其包装在$()中。下面是一种不必使用find的简单方法

$("#sortable2 #day").html(1)
这里有一个它工作的例子

这将创建一个包含所有匹配对象的集合,以检索特定对象use.get(index)。

为了避免在每次迭代时重建集合,我将它存储在循环外部的变量中

//Add all the hrs together to get the total
var $dayFields = $('#sortable2 li').find('#day');
for (var i in hrsArray) {
    total += hrsArray[i];
    //alert(list[i].toString());

    //Object found at this point, need to figure out how to send text to day span in it.
    if (total / 7.5 <= 1) {
        $($dayFields.get(i)).html('1');
    }
}
这将创建一个包含所有匹配对象的集合,以检索特定对象use.get(index)。

为了避免在每次迭代时重建集合,我将它存储在循环外部的变量中

//Add all the hrs together to get the total
var $dayFields = $('#sortable2 li').find('#day');
for (var i in hrsArray) {
    total += hrsArray[i];
    //alert(list[i].toString());

    //Object found at this point, need to figure out how to send text to day span in it.
    if (total / 7.5 <= 1) {
        $($dayFields.get(i)).html('1');
    }
}

很好,那么是否仍然可以动态选择li项?这将向每个列表项发送1。这将获取ul中的每个li,并在li
$(“#可排序2 li”)中添加
1
。html(1)
是的,但我不想在每个li中都加上'1',它会根据总小时数的不同而变化,因此是否有必要动态选择li项目?这将向每个列表项目发送1个li这将获取ul中的每个li,并在li
$(“#可排序2 li”).html(1)中添加
1
是的,但我不想在每个li中都加上“1”,它会根据总小时数而变化
$("#sortable2 li").each(function() {
    $(this).find("hrsSpan"); // This selects the hours field
    $(this).find("day"); // This selects the day field in the same li
});