我正在试图制作一个数字网格,当用户点击一个字段时,它会显示所选的数字。但是,当我尝试访问所选项目时,无法找到如何访问元素的值。
$(document).on('click','[id^="item"]',()=>{
console.log($(this).prop('id'))//return undefined
let identidad=$(this)
console.log(identidad)//return a window element
})

我也试过了..
$(document).ready(()=>{
$('.item').click(()=>{
console.log($(this).attr('data-value'))//return undefined
console.log($(this).val())//return Uncaught TypeError: Cannot read property 'toLowerCase' of undefined
console.log($(this).attr('value')//return undefined
})
});

echo "
<div id='grid'>
<table>
";
echo "<tr>";
for ($i=1; $i <=500; $i++) {
echo "
<td class='item active' id='item".$i."' value='".$i."'>".str_pad($i, 3, "0", STR_PAD_LEFT)."</td>
";
if ($i%10==0 || $i==0) {
echo "</tr><tr>";
}
}
echo "
</table>
</div>";
我开始编码所以我很高兴任何评论或建议...
答案 0 :(得分:2)
从jQuery 3.0开始,。delegate()
已被弃用。自jQuery 1.7以来,它被.on()
方法取代,因此已经不鼓励使用它。
$("table").on( ".item", "click",()=>{
//...
})
答案 1 :(得分:0)
您可以使用delegate为动态元素设置事件,如下所示:
$("table").delegate( ".item", "click",()=>{
//...
})
答案 2 :(得分:0)
尝试使用数据值属性而不是值也使用val()用于输入字段而不是表
在PHP中
<td class='item active' id='item".$i."' data-value='".$i."'>".str_pad($i, 3, "0", STR_PAD_LEFT)."</td>
在JQuery中
$('.item').click(()=>{
console.log($(this).attr('data-value'))//this return undefined
console.log($(this).text())//this return error toLowerCase jquery
})