我正在尝试使用JQuery来接收包含名称值和分数值的响应。该代码应该与响应名称匹配,并在表格中显示分数,然后更新该名称表格行中的分数单元格。问题是,我不知道如何选择表元素。
这是功能:
function rollBall() {
var pins = $('#pins').val();
$.ajax({
type: "POST",
url: "/ajaxjqjsbowling/play.htm",
data: "pins=" + pins,
success: function(response){
if(response.status == "SUCCESS"){
var cname = response.result.currPlayName;
var cscore = response.result.currPlayScore;
$("td#plName [name = cname] + td#plScore").replaceWith('' + cscore);
}
},
error: function(e){
alert('Error: ' + e);
}
});
}
这是表格代码:
<table id = "playerslist">
<c:forEach var="player" items="${players}">
<tr id = "htmlplayerno"><td> ${player.htmlPlayerNo}:</td><td id = "plName">${player.name}:</td><td id = "plScore" >0</td></tr>
</c:forEach>
</table>
<table>
感谢阅读。
答案 0 :(得分:0)
由于id是唯一的,为什么不只是:
$("#plScore").replaceWith('' + cscore);
答案 1 :(得分:0)
您需要将字符串连接在一起,否则它将只是字符串"td#plName [name = cname] + td#plScore"
。您还需要使用类,因为有多个玩家且 id
需要是唯一的。
success: function(response){
if (response.status == "SUCCESS") {
var cname = response.result.currPlayName;
var cscore = response.result.currPlayScore;
$("td.plName:contains('" + cname + "') + td.plScore").html(cscore);
}
<强> HTML 强>
<table id = "playerslist">
<c:forEach var="player" items="${players}">
<tr class="htmlplayerno"><td> ${player.htmlPlayerNo}:</td><td class="plName">${player.name}:</td><td class="plScore" >0</td></tr>
</c:forEach>
</table>
这是另一种可行的方式。
<强> HTML 强>
<tr id="${player.name}" >
<td class="plNo">${player.htmlPlayerNo}:</td>
<td class="plName">${player.name}:</td>
<td class="plScore">0</td>
</tr>
<强> JS 强>
$("#" + cname + " .plScore").html(cscore);
答案 2 :(得分:0)
是唯一的。如果你有多个tr,你必须使用课程。
<tr id="${player.htmlPlayerNo}" >
<td> ${player.htmlPlayerNo}:</td>
<td class="plName" >${player.name}:</td>
<td class="plScore" >0</td>
</tr>
然后
$("#" + ${player.htmlPlayerNo} + " td.plScore").html(cscore);