如何使用jQuery .find()从嵌入对象中检索值

时间:2016-07-21 11:45:06

标签: javascript jquery html

以下代码嵌入在多视图中,我想要做的就是访问Doc1Amount1 TextBox值,它是BodyCode div的一部分,它加载到DocBody div中。

<asp:View ID="Tab2" runat="server">
    <div class="HeaderLine">02: Documentation</div>
    <br />
    <asp:HiddenField ID="HiddenField1" runat="server" />
    //a<asp:Label ID="Label1" runat="server" Text ="Label1"></asp:Label>b
    <div id="DocBody" />
    <script>
    $("#DocBody").load('LabReportContent/DocumentationSub.aspx #BodyCode');
    $(window).load(function () {
        var current = $('#DocBody');
        $("#HiddenField1").val(current.contents().find("#Doc1Amount1").val());
    });
    </script>
</asp:View>

div被成功覆盖,所有加载的对象都按预期显示,但find命令返回一个空值。

我最初在没有$(window).load的情况下写了这个,并认为Doc1Amount1的内容没有显示,因为页面没有正确加载。

但是在向此添加窗口加载后仍然会发生同样的事情。

任何帮助都会受到赞赏,因为我对jQuery相对较新。

1 个答案:

答案 0 :(得分:1)

你不喜欢&#39;需要contents()。你应该在load之后执行简单的代码,因为窗口加载可能是早期的。您可以使用.load()函数的回调。

$("#DocBody").load('LabReportContent/DocumentationSub.aspx #BodyCode', function() {
    var current = $('#DocBody');
    $("#HiddenField1").val(current.find("#Doc1Amount1").val());
    $("#Label1").text(current.find("#Label1").text());
});

您也可以直接按上下文选择子元素,而不使用find

var current = $('#DocBody');
$("#HiddenField1").val($("#Doc1Amount1", current).val());
$("#Label1").text($("#Label1", current).text());