以下代码嵌入在多视图中,我想要做的就是访问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相对较新。
答案 0 :(得分:1)
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());