Javascript Can';t使用jquery获取下一个php生成行的ID
我必须在从数据库发送的每行之后生成一些文本框,因此我有一个用户,他有两行: 当然,每一行都属于一个Javascript Can';t使用jquery获取下一个php生成行的ID,javascript,jquery,Javascript,Jquery,我必须在从数据库发送的每行之后生成一些文本框,因此我有一个用户,他有两行: 当然,每一行都属于一个id: <td><?php echo $counter--; ?></td> <td><?php echo $installment['date_now'] ?></td> <td>&
id
:
<td><?php echo $counter--; ?></td>
<td><?php echo $installment['date_now'] ?></td>
<td><?php echo $installment['payment'] ?> $</td></tr>
</tr>
<?php } ?>
<tr><th colspan="10" style="text-align: right;">Remaining:</th>
<th><?php echo ($cash['project_cost'] - $sum) ?> $</th>
</tr>
<tr id="<?php echo $cash['infoid']; ?>"><td colspan="8" style="text-align: right;">Add Payment</td>
<td><input type="date" class="form-control" id="date_pay_now[]"/></td>
<td><input class="form-control" type="text" id="pay_now"/></td>
<td><button id="add_payment" class="btn btn-success glyphicon glyphicon-plus"></button>
</tr>
<tr><td></td></tr><tr><td></td></tr>
<?php $sumCash = $sumCash + $cash['project_cost']; } ?>
<tr>
<th colspan="10">Cash Total</th><th id="final_cash"><?php echo $sumCash ?> $</th>
</tr>
</table>
</div>
<?php } else { ?>
No Payments available
<?php } ?>
如果您看到图像,当我单击第一个按钮时,我在控制台上正确地看到id,如果id为空,我可以看到红色,但是当我刷新页面并直接单击第二行按钮时,我在控制台上看不到任何值,也没有css颜色,因为显示的是空文本框
在这里,当我单击“下一步”按钮时,控制台上没有颜色和id:
$(“#添加#支付”)
必须引用dom中的唯一元素。我假设每行有一个按钮,所以您应该使用类选择器而不是ID来选择它们。您应该确保页面中存在这些元素。关于如何动态附加事件处理程序,SO中有很多主题。一个提示:$('document')。关于('click','myButtons',function(){…})代码>那么如何使用.on
修复代码?我添加了.on('click','add#u payment',function(){
现在它可以工作了。怎么做?为什么没有。
它就不能工作了?我希望你能简单地解释一下,但是仍然只有第一个文本框改变了颜色,虽然颜色是另一个问题。同样,你应该只使用唯一的ID。为什么。
上的可以工作?因为它告诉你的文档将一个点击事件处理程序附加到任何匹配的对象上单击“打开”条件并计算条件。如果使用经典。单击()
它将查找所选项目并将其附加到处理程序。文档中稍后添加的任何对象都是全新的,没有附加事件处理程序。使用将事件处理程序附加到文档中。
上的事件处理程序始终在此处,不可更改。。。
$("#add_payment").click(function()
{
var date_of_pay = $("#date_pay_now").val();
var pay_now = $("#pay_now").val();
var id_pay = $(this).closest('tr').attr('id');
console.log(id_pay);
if(date_of_pay == "" || pay_now == "")
{
$("#date_pay_now").css('border-color', 'red');
$("#pay_now").css('border-color', 'red');
}
if(date_of_pay != "" && pay_now != "")
{
$.ajax
({
//Still not typed
});
}
});