我希望有人能告诉我在接下来的代码中我做错了什么。我有一个现有的页面,使用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();
}
});
});
})
答案 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,戴夫打败了我。荣誉。强>