【发布时间】:2023-03-29 02:06:02
【问题描述】:
我正在尝试选择页面加载后添加的页面元素。请参阅下面的前后示例。之前是页面源,之后是生成的源。由于某种原因,我无法选择已生成的任何内容。
这对我来说似乎很奇怪,因为我很确定我以前做过。
感谢您的帮助。
之前:
<div class="foo"></div>
之后:
<div class="foo">
<div class="bar"></div>
</div>
【问题讨论】:
我正在尝试选择页面加载后添加的页面元素。请参阅下面的前后示例。之前是页面源,之后是生成的源。由于某种原因,我无法选择已生成的任何内容。
这对我来说似乎很奇怪,因为我很确定我以前做过。
感谢您的帮助。
之前:
<div class="foo"></div>
之后:
<div class="foo">
<div class="bar"></div>
</div>
【问题讨论】:
所有这些关于 append 后绑定的 cmets 都有帮助。
但是如果你切换到 jQuery 1.3,你可以在第一次设置页面时使用“live”而不是“bind”,那么即使添加了元素,你也会得到你的事件。
【讨论】:
当你给#auto_suggest添加一个div时,你也需要绑定事件:
$("#auto_suggest").append("<div class='off'>Blah</div>");
$("#auto_suggest div.off").hover(function() { window.alert($(this).val()); });
否则,您将使用 jQuery 1.3 及更高版本。 live() 功能将满足您的需求;例如
$("#auto_suggest div.off").live("hover", function() { window.alert($(this).val()); });
【讨论】:
您在创建 dom 元素之前绑定了事件,据我所知,这不起作用。相反,您可以在附加后添加绑定。不过可能还有其他解决方案。
【讨论】:
这不太可能。我想亲自查看源代码?
否则尝试在 Firefox/Iceweasel 中使用 Firebug。 Firebug 是天赐之物——使用“控制台”选项卡——对于“查看源代码”不是完美解决方案的 ajax 密集型站点。您可以执行以下操作:
$(".foo .bar")
控制台会输出匹配元素的个数!
【讨论】:
好的,代码如下,如果我删除底部选择器中的 div.off,我会收到测试警报,因为该元素不是生成源。
$(document).ready(function(){
$(".search_container 输入").keyup(function(){
var search;
search = $(".search_container input").val();
if (search.length > 2){
$.ajax({
type: "GET",
url: "http://localhost:8080/search.xml",
data: "zoom_query=" + search + "&zoom_xml=1",
dataType: "xml",
success: function(xml){
$("#auto_suggest").empty();
$("#auto_suggest").show();
var _title = "";
var _link = "";
$("item", xml).each(function(){
_title = $("title", this).text();
_link = $("link", this).text();
_context = $("zoom\\:context", this).text();
if ($(this).length > 0){
message = "<div class=\"off\">";
message += "<div title='" + _context + "'>" + _title + "</div>";
message += "<small>" + _link + "</small>";
message += "</div>";
$("#auto_suggest").append(message);
}
else {
$("#auto_suggest").hide();
}
});
}
});
}
else {
$("#auto_suggest").hide();
};
});
$("#auto_suggest div.off").hover(function(){
alert('test');
});
});
【讨论】:
您需要仔细检查所有代码。 jQuery 可以访问 DOM 的所有部分,无论它们是静态的还是动态的。
我们需要查看 JavaScript 以帮助您进一步排除故障。
【讨论】: