找不到Ajax动态创建的元素

时间:2016-09-13 06:30:35

标签: javascript jquery html ajax jsp

在我的jsp页面中,我使用Ajax调用将表体插入现有表。我有另一个jquery函数,它找到表中某些行的最大值并更改背景颜色。但是,似乎jquery无法找到Ajax动态创建的元素。

Ajax电话:

function getRelTable(type) {
    $.ajax({
        type : "POST",
        dataType : "html",
        cache : false,
        url : _ctx + "/monitor/get_table.do",
        data : {
            "type" : type,
        },
        success : function(content) {
            //var t_body = $(content);
            $("#table_body").html(content);
            findMax();
        },
        error : function() {
            ui.msg('信息加载错误', 0);
        }
    }); 
}

此Ajax中的内容来自jsp页面:

<c:forEach var="nodeRel" items="${nodeRelInfo}" varStatus="stc">
        <c:choose>
            <c:when test="${stc.first}">

                <tr>
                    <td style="vertical-align: middle; text-align: center;"
                        rowspan="3">${stc.count}</td>
                    <td style="vertical-align: middle; text-align: center;"
                        valign="middle" align="center" rowspan="3">${nodeRel.fromNodeName}
                        --> ${nodeRel.toNodeName}</td>
                    <td></td>
                    <c:forEach var="x" begin="0" end="23" step="1">
                        <td>${x}</td>
                    </c:forEach>
                </tr>
                <tr class="value_row">
                    <td>${nodeRel.fromNodeName}发送</td>
                    <c:forEach var="node" items="${nodeRel.sendFinalList}">
                        <td class="value_cell" value="${node}"><c:choose>
                                <c:when test="${empty node}">
                                    -
                                </c:when>
                                <c:otherwise>
                                    ${node}
                                </c:otherwise>
                            </c:choose></td>
                    </c:forEach>

                </tr>
                <tr class="value_row">
                    <td>${nodeRel.toNodeName}发送</td>
                    <c:forEach var="node" items="${nodeRel.recvFinalList}">
                        <td class="value_cell" value="${node}"><c:choose>
                                <c:when test="${empty node}">
                                    -
                                </c:when>
                                <c:otherwise>
                                    ${node}
                                </c:otherwise>
                            </c:choose></td>
                    </c:forEach>
                </tr>

            </c:when>
            <c:otherwise>
                <tr class="value_row">
                    <td style="vertical-align: middle; text-align: center;"
                        rowspan="2">${stc.count}</td>
                    <td style="vertical-align: middle; text-align: center;"
                        valign="middle" align="center" rowspan="2">${nodeRel.fromNodeName}
                        --> ${nodeRel.toNodeName}</td>
                    <td>${nodeRel.fromNodeName}发送</td>
                    <%-- <c:forEach var="node" items="${nodeRel.sendFinalList}">
                        <td class="value_cell" value="${node}"><c:choose>
                                <c:when test="${empty node}">
                                    -
                                </c:when>
                                <c:otherwise>
                                    ${node}
                                </c:otherwise>
                            </c:choose></td>

                    </c:forEach> --%>
                    <c:forEach var="x" begin="0" end="23" step="1"> 
                            <td value="${x}">${x}</td>
                        </c:forEach>

                </tr>
                <tr class="value_row">
                    <td>${nodeRel.toNodeName}发送</td>
                    <c:forEach var="node" items="${nodeRel.recvFinalList}">
                        <td class="value_cell" value="${node}"><c:choose>
                                <c:when test="${empty node}">
                                    -
                                </c:when>
                                <c:otherwise>
                                    ${node}
                                </c:otherwise>
                            </c:choose></td>
                    </c:forEach>
                </tr>
            </c:otherwise>
        </c:choose>


    </c:forEach>

但是,在我的主页面中,以下功能不起作用,因为无法找到动态创建的元素!

function findMax() {
    $('tr').each(function(){
        //get the first value
        var max = $(this).find('td.value_cell').first().attr("value");
        if(isNaN(parseInt(max)))
            return;

        var highestElement = $(this).find('td.value_cell').first();
        $(this).find('td.value_cell').each(function(){
            var current = $(this).attr("value");

            if(!isNaN(parseInt(current))){
                if(current >= max) {
                    max = current;
                    highestElement = $(this);
                }
            }

        });

        if(max != 0)
            highestElement.css('background-color', 'red');
    });
}   

我的代码出了什么问题?

更新

答案here表明我无法选择在成功回调函数中创建的元素。那么有没有其他方法可以在动态创建的内容中找到最大值并操纵这些内容?

0 个答案:

没有答案