jquery访问动态内容的元素
我对jQuery非常陌生,在访问动态内容的元素时遇到困难。正如您在下面看到的,我已经创建了一个包含在jquery访问动态内容的元素,jquery,Jquery,我对jQuery非常陌生,在访问动态内容的元素时遇到困难。正如您在下面看到的,我已经创建了一个包含在div中的基本表,它在您运行代码时已经存在。单击任何单元格时,将显示该单元格的文本。但是,如果我在页面加载(单击按钮)后创建表格,然后单击单元格,则无法得到相同的结果 <script> $(document).ready(function() { $("#div1 td").click(function() { alert($(this)
div
中的基本表,它在您运行代码时已经存在。单击任何单元格时,将显示该单元格的文本。但是,如果我在页面加载(单击按钮)后创建表格,然后单击单元格,则无法得到相同的结果
<script>
$(document).ready(function() {
$("#div1 td").click(function() {
alert($(this).text());
})
$("#div2 td").click(function() {
alert($(this).text());
})
$("#createtable").click(function () {
$("#div2").html("<table id=\"table2\" border=\"1\"><tr><th>Table</th><th>2</th></tr><tr><td>January</td><td>$100</td></tr></table>");
})
});
</script>
<div id="div1">
<table id="table1" border="1">
<tr>
<th>Table</th>
<th>1</th>
</tr>
<tr>
<td>January</td>
<td>$100</td>
</tr>
<tr>
<td>February</td>
<td>$80</td>
</tr>
</table>
</div>
<br>
<button id="createtable">Generate Table</button>
<div id="div2">DYNAMIC CONTENT</div>
$(文档).ready(函数(){
$(“#div1 td”)。单击(函数(){
警报($(this.text());
})
$(“#div2 td”)。单击(函数(){
警报($(this.text());
})
$(“#createtable”)。单击(函数(){
$(“#div2”).html(“表2一月$100”);
})
});
桌子
1.
一月
$100
二月
$80
生成表
动态内容
.事件处理程序在文档加载时注册。您应该在替换上下文后重新注册它们,以便更好地将代码放在单独的函数中,并在替换受影响元素的每个位置调用它
function regHandlers()
{
$("#div1 td").click(function() {
alert($(this).text());
})
$("#div2 td").click(function() {
alert($(this).text());
})
}
$(document).ready(function() {
regHandlers();
$("#createtable").click(function () {
$("#div2").html("<table id=\"table2\" border=\"1\"><tr><th>Table</th><th>2</th></tr><tr><td>January</td><td>$100</td></tr></table>");
regHandlers();
})
});
函数regHandlers()
{
$(“#div1 td”)。单击(函数(){
警报($(this.text());
})
$(“#div2 td”)。单击(函数(){
警报($(this.text());
})
}
$(文档).ready(函数(){
regHandlers();
$(“#createtable”)。单击(函数(){
$(“#div2”).html(“表2一月$100”);
regHandlers();
})
});
您需要为动态添加到DOM中的元素应用事件委派:
$(document).on("click","#div2 td", function() {
alert($(this).text());
});
可能重复的