如何让所有td都能调ajax?
请问大家,现在需要让table中每个tr的第二个td在鼠标移动上去时在另外的div处回显内容,本人使用了ajax和mouseover,再用id来定位td,代码如下:
$(document).ready(function(){
$('#tdid').mouseover(function () {
var $val = $.trim($("#tdid").text());
$.ajax({
type: "post",
url: 'getinfo.php',
data: {val:$val},
success: function (data,status) {
$('#showinfo').html(data);
},
error: function () {
alert("error");
}
但是这样只是第一个td能成功调ajax,其他td都不发数据包了,即没有调ajax(查看源码看可以看到每个tr的第二个td都有id=tdid),这是为什么?或者要实现本人这个需要,有更好的方法吗?感激不尽!!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
第一种解决方法:把id换成class,然后在mouseover回调函数中用this获取当前元素的值
第二种方法可以使用事件委托,我就不上代码了,想要弄懂原理可以去查
首先第一点,你要理解CSS中id和class的区别,严格来说同一个id在HTML中有且仅有一处(虽然多个HTML也不会报错),class则可以复用多个。
而这里你是使用了jQuery的id选择器
$(#elid)
,id选择器只选则一个Element
啊……不是ElementList
不建议你这样做,你显示的内容可以提前统一获取,然后在触发td的hover事件时将其显示出来