3

我已经创建了一个动态 div 以及表格...我希望当我单击 div 内的图像时,它会给出我单击的 div 的 id...下面是代码。请任何人指出错误在哪里......!?在警报框中,我无法获取 div 的 id

以下代码创建了 div

function create_newGrid() {
    //create div for corresponding table
    var tableDiv = $('<div/>').attr({ "id": "settingsDiv-tab" + nooftables });
    var divImage = $('<img/>').attr({ "src": "settingsImage/settings.png", "onclick": "openTableSettings(this);" })
    $(tableDiv).append(divImage);
    // append grid to designer
    $(document.getElementById("center")).append(tableDiv);
    $(document.getElementById("center")).append(table);
}

以下是单击 div 中的图像时执行的函数

function openTableSettings(div) {
    alert($(div).attr("id"));

}
4

4 回答 4

1

问题是您在图像上有 onclick,它没有 ID。如果您在浏览器控制台中运行它,它将在此页面底部添加一个带有文本的 div,您可以看到 id 被正确检索。(您的代码但已修改)

//create div for corresponding table
var tableDiv = $('<div/>').attr({ "id": "settingsDiv-tab", "onclick": "alert($(this).attr('id'));"});
var divImage = $('<p>this is a big bunch of text</p>');
tableDiv.append(divImage);
$(document.body).append(tableDiv);
于 2012-04-14T16:25:43.980 回答
1

您将对 img 的引用传递给openTableSettings(). 用于.closest()获取 div:

function openTableSettings(img) { 
    alert($(img).closest("div").attr("id")); 
} 
于 2012-04-14T16:32:15.853 回答
0

如果你这样做可能会更好

var divImage = $('<img/>').attr({ "src": "settingsImage/settings.png", class: "clickable"});

进而

$(window).on('click', 'img.clickable', function(){
   alert(this.id);
});

(假设 jQuery >= 1.7)

于 2012-04-14T16:19:25.250 回答
0

试试这个:

$("div > img").click(function() { 
    id = $(this).parent("div").attr("id");
    alert(id);    
})
于 2012-04-14T16:22:19.360 回答