使用基于父ID的jQuery更改子类元素的HTML?

时间:2014-08-05 20:21:13

标签: jquery

我正在尝试更改div元素的HTML,以简单地重新编号行。 我似乎无法抓住具有{{​​1}}值的子元素。 如何使用jQuery正确完成?

class="Col1"

最终的jQuery解决方案:

function reorderTimeRowDisplayNumbers() {
    var elementsDisplayVisible = $(".schedTable").filter(':visible');
    if (elementsDisplayVisible.length > 0) {

        for (i = 1; i <= elementsDisplayVisible.length; i++) {

            var elementDisplayVisibleID = elementsDisplayVisible[i - 1].id;
            var myInt = parseInt(elementDisplayVisibleID.match(/[0-9]+/)[0], 10);

            alert(myInt);

            // update child div innerHTML
            if (myInt != i) {
                var divEl = document.getElementById(elementDisplayVisibleID);
                alert(divEl);
                $('#' + divEl + ' > .Col1').html(i -1);                
            }
        }
    }
}

2 个答案:

答案 0 :(得分:3)

您正尝试将 DOM元素转换为字符串,并在选择器中使用它。那不行。您可以使用one of the many traversal methods jQuery优惠:

$(divEl).children('.Col1')

这是一个更简洁的代码版本:

function reorderTimeRowDisplayNumbers() {
    $('.schedTable:visible').each(function(index) {
        if (Number(this.id.match(/[0-9]+/)[0]) !== (index + 1)) {
            $(this).children('.Col1').html(index);
        }
    });
}

答案 1 :(得分:3)

您已经拥有了 ID 所需的插件。你其实想写:

$('#' + elementDisplayVisibleID + ' > .Col1')