我创建了一个简单的导入脚本,它使用CSV在PHP中处理它并返回一个HTML表(本质上是一个用户列表)。
这是HTML输出:
<tr id="user:1">
<td id="first:1">Jane</td>
<td id="last:1">Doe</td>
</tr>
<tr id="user:2">
<td id="first:2">John</td>
<td id="last:2">Doe</td>
</tr>
此HTML数据最初作为我的上传功能的响应变量(数据)返回:
$.post('upload.php', {
first: $('#first').val(),
last: $('#last').val(),
function(data) {
$("#plist", top.document).html(data);
}
);
您会注意到我然后将数据放入名为“#plist”的div中,该div位于顶部框架中。基本上我在使用iframe上传附件时做了同样的诡计。然后我将数据返回到顶部框架的div中。
一切都很好。
我唯一的问题是我无法在这个动态创建的数据上使用JQuery的选择器。例如,如果我想检索第一个用户名,我试图这样做:
var first = $("#first:1").html();
alert(first);
这不像我预期的那样有效。我之前使用过JQuery的实时绑定,并且我已将其包含在该逻辑中,但仍然无效。
$(".some_btn").live("click", function(){
var first = $("#first:1").html();
alert(first);
});
有什么想法吗?
答案 0 :(得分:1)
问题是:
就jQuery而言是一个特殊字符。它用于各种伪元素(例如$("div:hidden").show()
)。你需要逃脱它:
$("#first\\:1")...
我的建议是使用其他字符,例如_
或-
。
答案 1 :(得分:0)
你仍然需要引用另一个框来获取元素,因为你插入的是这个元素,如下所示:
$("#first", top.document).html();