如何让所有td都能调ajax?

发布于 2022-09-07 03:54:06 字数 679 浏览 11 评论 0

请问大家,现在需要让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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

゛时过境迁 2022-09-14 03:54:06

第一种解决方法:把id换成class,然后在mouseover回调函数中用this获取当前元素的值

$('.class').mouseover(function () {
    var val = this.text();            // 这里的this就是当前元素
})

第二种方法可以使用事件委托,我就不上代码了,想要弄懂原理可以去查

全部不再 2022-09-14 03:54:06

首先第一点,你要理解CSS中id和class的区别,严格来说同一个id在HTML中有且仅有一处(虽然多个HTML也不会报错),class则可以复用多个。
而这里你是使用了jQuery的id选择器$(#elid),id选择器只选则一个Element啊……不是ElementList

莫相离 2022-09-14 03:54:06

不建议你这样做,你显示的内容可以提前统一获取,然后在触发td的hover事件时将其显示出来

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文