使用JQuery live获取img id值的问题

时间:2011-06-20 18:17:50

标签: jquery

我希望有人能告诉我在接下来的代码中我做错了什么。我有一个现有的页面,使用jQuery将新内容加载到其中一个页面div:div1而不刷新(工作正常)。加载的新内容具有包含以下属性的帮助图标图像:class="helpicon" id="1"

我要做的是使用jQuery从帮助图标图像中获取id值,将其传递给php /数据库连接文件help.php,该文件从数据库中获取正确的内容并填充另一个div原始页面上的id="content_help_main",同样没有刷新整个页面。我在另一个使用help.php原始内容的页面上使用php /数据库连接文件div1,该内容还有一个帮助图标图像来填充div id="help_content_main",所以我认为问题只是我使用jQuery live方法,这似乎是错误的。任何帮助表示赞赏!

这是我的jQuery脚本:

$(function() {
$('.helpicon').live('click', function() {

var data = "id=" + $img.attr("id");
$.ajax({
    type: "POST",
    url: "help.php",
    data: data,
    success: function(output) {
            $('#content_help_main').html(output).show();
    }
        });
});
})

2 个答案:

答案 0 :(得分:3)

尝试替换

var data = "id=" + $img.attr("id");

var data = "id=" + $(this).attr("id")

答案 1 :(得分:2)

看起来img id的选择器是错误的。

var data="id="+$img.attr("id");

应该是

var data="id="+$(this).attr("id");

$(this)是您点击的帮助图标,如果您在整个网站中都有这些帮助图标,那么它就会起作用。

让$ img抛出错误,因为你总是需要将你的选择器(在本例中为img)包含在$符号,括号和引号中 - $('')。

仅使用$('img')的问题在于,它会从您在网站上点击的第一张图片中获取内容,这可能不是帮助图标。使用$(this)将其绑定到被点击的项目(这将始终是帮助图标!)。

编辑:AHHH,戴夫打败了我。荣誉。