JS取<c:forEach>每行的数据传给Ajax

动态生成的表格,在表格的每行最后一列有按钮点击事件,点击按钮之后取当前行的值给AJAX,但点击后发现取得都是第一行的数据

        <script language="javascript" type="text/javascript"> 
function submit(btn)
{ 
    alert("进来了");
    //var tr= btn.parentElement.rowIndex;
    var tr = btn.parentNode.parentNode;
    //var fund_company =tr.cells(3);
    var fund_company =tr.childNodes[7].innerText;
    //var fund_company = $("#fund_company").html(); 
    alert(fund_company);
    //var fund_code = $("#fund_code").html();
    var fund_code =tr.childNodes[5].innerText;
    alert(fund_code);
    var fund_character =$("#fund_character").val(); 
    //var fund_character =tr.childNodes[5].innerText;
    alert(fund_character);
    var sub = $("#sub").val();
    //var sub =tr.childNodes[4].innerText;

    alert(sub);
    var vote = $("#vote").val();
    //var vote =tr.childNodes[4].innerText;

    alert(vote);
    var ransom = $("#ransom").val();
    //var ransom = tr.childNodes[4].innerText;

    alert(ransom);
    var params = {
                    fund_company : fund_company,
                    fund_code : fund_code,
                    fund_character : fund_character,
                    sub :sub,
                    vote:vote,
                    ransom:ransom
                    };

    $.ajax({
        type : 'post',
        data : params,
        url : './wx/jjdt/edit/modify.do',
        async:false,
        success : function(data){
            alert(data);  
        },
        dataType: "text"
    });
}
<c:forEach var="fund" items="${fund_list}" varStatus="status">
            <tr>    
                <td >${status.index + 1}</td>
                <td>${fund.fund_name }</td>
                <td id="fund_code">${fund.fund_code }</td>
                <td id="fund_company">${fund.fund_company }</td>
                <td id="1"><textarea id="fund_character" name="fund_character" >${fund.fund_character }</textarea></td>
                <td id="2"><textarea id="sub" name="sub"  >${fund.sub }</textarea></td>
                <td id="3"><textarea id="vote" name="vote"  >${fund.vote }</textarea></td>
                <td id="4"><textarea  id="ransom" name="ransom">${fund.ransom }</textarea></td>                 
                <td id="1"><input type="button" value="确定" onclick="submit(this)"></td>
                </tbody>
            <tr>                
            </c:forEach>

        </table>

你用firebug看看你要点击的那个按钮的 onclick 调用的方式之中的参数是否就是第一个,是否可以说具体一点,最好有图,和代码片段

没行数据用一个不同的id或者name区隔开,js取的时候用 $("#你的id").val() 取。

知道为什么吗 ,你每个td的id都一样了 动态拼接加载的table的td上不能给id 不然你肯定会获取的一直第一条的。。。要么直接给个动态id ,要么就是把id删了 用$("#table").find("td").val()取值

你id都重复了,之前你问的帖子不都说了n次了,怎么还是用id选择器呢。。。。而且都是用jquery了,就不需要这么麻烦用原生js了,而且不要用childNodes,标准浏览器下空白节点也算一个节点,所以你得到的不一定是td单元格

        function submit(btn) {
            /////////////////////////
            var tds = $(btn).closest('tr').find('td');
            var fund_company = tds.eq(3).text();
            var fund_code = tds.eq(2).text();
            var fund_character = tds.eq(4).find('textarea').val();
            var sub = tds.eq(5).find('textarea').val();
            var vote = tds.eq(6).find('textarea').val();
            var ransom = tds.eq(7).find('textarea').val();
            /////////////////////////
            var params = {
                fund_company: fund_company,
                fund_code: fund_code,
                fund_character: fund_character,
                sub: sub,
                vote: vote,
                ransom: ransom
            };
            console.log(params)/////////
            $.ajax({
                type: 'post',
                data: params,
                url: './wx/jjdt/edit/modify.do',
                async: false,
                success: function (data) {
                    alert(data);
                },
                dataType: "text"
            });
        }