【问题标题】:not able to retrieve the value of other rows than the first row from a html table using javascript无法使用 javascript 从 html 表中检索除第一行之外的其他行的值
【发布时间】:2014-02-25 16:19:26
【问题描述】:

我正在尝试通过 MVC 视图中的 javascript 获取 html 表格元素中的标记内隐藏输入的值。当单击相应的行时,我已经获得了循环中隐藏输入的相应值。我尝试了很多代码,但它只返回表中所有行的第一行的值。我尝试了以下方法:

@foreach (var item in Model)

{

<tr>
    <td hidden><input value="@item.QuoteId" id="QuoteID" class="QuoteID"> </td>
</tr>
}

javascript:

$("tr").click(function () {

var quoteid=document.getElementById("#QuoteID").innerHTML alert(quoteid); alert($('.QuoteID').val()); }

如果我的数据库包含 3 个引用值,比如 12、17、18 .. 它会为所有行点击警报 12.. 请帮助,我真的被卡住了。我从3天开始就一直在尝试,我无法弄清楚。我想这是我这边的一些简单错误。请帮忙。由于这个简单的错误,我无法完成分配给我的工作。

【问题讨论】:

    标签: javascript model-view-controller html-table


    【解决方案1】:

    您多次使用同一个 ID。 ID 必须是唯一的!!要使其工作,您可以调用唯一 ID,或在特定行上单击并使用 this 调用您的函数。在您的函数中,您可以使用this.value

    <script>
        function ShowMeThePower(myElement) {
            alert(myElement.innerHTML);
        }
    </script>
    <div onclick="ShowMeThePower(this);">This is great!</div>
    

    http://jsfiddle.net/3RJVd/

    编辑:

    满足OP:

    <table>
        <tr>
            <td><input type="text" id="show1" value="test1" /></td>
        </tr>
        <tr>
            <td><input type="text" id="show2" value="test2" /></td>
        </tr>
    </table>
    <script>
        for (var i = 1; i < 3; i++){
            alert(document.getElementById('show' + i).value);
        }
    </script>
    

    如果你看到,这是相同的逻辑。请务必使用唯一 ID。

    http://jsfiddle.net/4gMy6/

    【讨论】:

    • 但我需要从循环中的 中获取值,而不是
      元素。对不起,如果我的问题很愚蠢,请帮助
    • 我试过了,就像你给出的小提琴演示一样,我没有从循环中获取迭代值。仍然只有第一个项目被提醒。您的代码似乎是满足我要求的正确逻辑,但我没有得到迭代的模型值。
    • &lt;input value="@item.QuoteId" id="QuoteID" class="QuoteID"&gt;更改为&lt;input value="@item.QuoteId" id="QuoteID" class="QuoteID" onclick="showMeThis(this);"&gt;,然后在使用this.value的javascript中创建一个函数,就像示例一样。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签