修改 table 的索引行

Modify indexed row of table

我有一个 JSP 页面,在这个页面中我需要 select 一行或多行在一个 HTML table 中,然后删除或修改 select编辑记录。

为此,我开发了一个代码,当我点击行时,我传递行的索引。

例如:

对于这个table,如果我点击博洛尼亚,我只需要修改博洛尼亚那一行。

但现在如果我点击 Genova、Milano 或 Trieste,我总是只能修改第一行:为什么?

    function edit(x, lenght) {

    alert(x+ "/" + lenght);
    var    i = 0;

    for (i = 0; i <= lenght; i++) 
    {
    alert(i + "/" + x);
        if (i == x) 
        {

            var desc = document.getElementById("desc");
            var secret = document.getElementById("secret");
             row.style.backgroundColor = '#E1EEF4'; 
            desc.style.bord    er = "1px solid black";
            desc.style.backgroundColor = "white";
            desc.readOnly = false;

            secret.style.border = "1px solid black";
            secret.style.backgroundColor = "white";
            secret.readOnly = false;
        }

    }
}

虽然这是我的行的代码 HTML:

<td align="center" style="width: 5px;"><img
    src="<s:url value="/images/x.png"/>" style="width: 15px;"></img></td>
<td align="center" style="width: 5px;"><img
    onclick="edit('<s:property value="%{#status.count - 1 + startUtente}" />','<s:property value="%{listaUtenti.size}" />');"
    src="<s:url value="/images/ed_propr.gif"/>"
    style="width: 15px;"></img></td>
<td align="center"><s:label name="id" value="%{id}"
        size="2" /></td>
<td align="center"><s:label name="userId" value="%{userId}"
        size="20" /></td>
<td align="center"><s:textfield id="desc"
        name="descrizione"
        style="border:0px; background-color : transparent;"
        readonly="true" value="%{descrizione}" size="30" /></td>
<td align="center"><s:textfield id="secret"
        name="daTopSecret"
        style="border:0px; background-color : transparent;"
        readonly="true" value="%{daTopSecret}" size="15" /></td>

"secret" 字段的每一行始终具有相同的 ID,您需要使用 #status.count#status.index(以及所有其他字段)对其进行参数化,如下所示

<s:textfield id="secret_%{#status.index}" />

然后在Javascript中以同样的方式阅读:

var secret = document.getElementById("secret_" + x);