我已经创建了一个动态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"));
}
答案 0 :(得分: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);
答案 1 :(得分:1)
您正在将对img的引用传递给openTableSettings()
。使用.closest()
获取div:
function openTableSettings(img) {
alert($(img).closest("div").attr("id"));
}
答案 2 :(得分:0)
如果你这样做可能会更好
var divImage = $('<img/>').attr({ "src": "settingsImage/settings.png", class: "clickable"});
然后
$(window).on('click', 'img.clickable', function(){
alert(this.id);
});
(这假定jQuery&gt; = 1.7)
答案 3 :(得分:0)
试试这个:
$("div > img").click(function() {
id = $(this).parent("div").attr("id");
alert(id);
})