javascript - 如何使用 jQuery 访问动态创建的页面元素(不是事件,元素!)

标签 javascript jquery ajax postback

我在一个页面上有几个动态创建的元素,我想使用 jQuery 将内容发布到另一个页面。问题是,创建的元素不能通过 jQuery 访问(只有页面上存在的元素可以使用 $(#myElementID). 我已经看到数百篇文章使用 live() 和 on() 函数来访问事件,但无法访问动态创建的元素的任何属性、值、innerHTML 等。 这根本不可能用 jQuery 来做吗?

    $('#btnParseTable').click(function () {
        var tblCustomPattern = $("#tblCustomPattern").innerHTML; 


   //This test alert yields "" because tblCustomPattern is undefined - yet FireBug clearly shows the table exists!
        alert(tblCustomPattern); 


 var postData = { "method": "ParseTable", "tbl": tblCustomPattern };
        $.post("tiler.aspx", postData, function (data) {
            $("#test").html(data); //for testing
        });

});

如果 jQuery 不支持,是否可以用 JavaScript 完成,或者是否无法回发不是“INPUT”元素的信息?

最佳答案

This test alert yields "" because tblCustomPattern is undefined - yet FireBug clearly shows the table exists!

您可以在将动态创建的元素添加到 DOM 后对其进行评估。 tblCustomPattern 是 undefined 因为 jQuery 对象没有属性 innerHTML 你需要 DOM 元素来使用 innerHTML 但是选择器会返回给你 jQuery 对象。您可以使用索引器 [][get()][1] 从 jQuery 对象中获取 html 元素。它是基于零的索引,您将在零index处获得第一个元素。

var tblCustomPattern = $("#tblCustomPattern")[0].innerHTML; 

或者,使用 .get()

var tblCustomPattern = $("#tblCustomPattern").get(0).innerHTML; 

或使用 html()

var tblCustomPattern = $("#tblCustomPattern").html(); 

关于javascript - 如何使用 jQuery 访问动态创建的页面元素(不是事件,元素!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20851949/

相关文章:

javascript - React 从子组件方法调用父组件方法

javascript - 如果我包含 .min 有关系吗?在脚本的文件名中?

javascript - Jquery:根据屏幕分辨率交换 HTML 部分

javascript - 如何将数据添加到基于 Backbone.js 的模板中的元素

javascript - 动画不必要的延迟

javascript - 在 JavaScript 中的另一个函数中定义一个函数

javascript - 如何在javascript中选择时替换文本

javascript - 通过 for 循环中的拼接从数组中删除项目

javascript - 在 Javascript/jQuery 中嵌套 AJAX 请求,这是一个很好的做法吗?

javascript - 如何更改隐藏按钮的值