鍍金池/ 問答/HTML/ 如何讓所有td都能調ajax?

如何讓所有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都不發(fā)數據包了,即沒有調ajax(查看源碼看可以看到每個tr的第二個td都有id=tdid),這是為什么?或者要實現本人這個需要,有更好的方法嗎?感激不盡?。?!

回答
編輯回答
懶豬

不建議你這樣做,你顯示的內容可以提前統一獲取,然后在觸發(fā)td的hover事件時將其顯示出來

2018年5月11日 01:50
編輯回答
萢萢糖

第一種解決方法:把id換成class,然后在mouseover回調函數中用this獲取當前元素的值

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

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

2018年7月10日 10:29
編輯回答
孤酒

首先第一點,你要理解CSS中id和class的區(qū)別,嚴格來說同一個id在HTML中有且僅有一處(雖然多個HTML也不會報錯),class則可以復用多個。
而這里你是使用了jQuery的id選擇器$(#elid),id選擇器只選則一個Element啊……不是ElementList

2017年8月29日 18:13