jQuery - 根据标识符获取下一个选项的总值

jQuery - Get Total value of the next options based on identifier

本文关键字:选项 下一个 获取 标识符 jQuery      更新时间:2023-09-26

HTML

<option data-task-hours="100" value="1"> - Parent Task</option>
<option data-task-hours="50" value="2"> -  - Child task 1 </option>
<option data-task-hours="25" value="3"> -  -  - Child task 1.1</option>
<option data-task-hours="25" value="4"> -  -  - Child task 1.2</option>
<option data-task-hours="50" value="5"> -  - Child task 2</option>

j查询代码以获取所选下一个选项的总值:

var selectedOption = $('#dropDownId option:selected')
var selectedOptionValue = selectedOption.data('task-hours');
var sum = 0;
selectedOption.nextAll().each(function(){
    if (sum < selectedOptionValue) {
        sum += $(this).data('task-hours');
    } else {
        sum = selectedOptionValue;
        return false;
    }
});

该代码仅适用于父任务。如果我添加一个子,即 Child 1.1小时 = 25,则不允许。我们如何分解儿童任务时间,即 50可以进一步细分为25+25,并检查Child task 1是否有子子Child task 1.1Child task 1.2

有没有更好的方法来区分可以进一步细分为sub-child task parent and child task

我会在每个项目上添加一个数据父 id:

<option data-task-hours="100" data-parent-id="0" value="1"> - Parent Task</option>
<option data-task-hours="50" data-parent-id="1" value="2"> -  - Child task 1 </option>
<option data-task-hours="25" data-parent-id="2" value="3"> -  -  - Child task 1.1</option>
<option data-task-hours="25" data-parent-id="2" value="4"> -  -  - Child task 1.2</option>
<option data-task-hours="50" data-parent-id="1" value="5"> -  - Child task 2</option>