2016-07-21 1 views
0

次のコードはマルチビューに埋め込まれています。必要なのは、BodyCode divの一部であるDoc1Amount1 TextBox値にアクセスするだけです。 DocBody divにロードされます。jQuery .find()を使用して埋め込みオブジェクトから値を取得する方法

<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

contents()は必要ありません。 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()); 
+0

ありがとう、eisbehr、 –

+0

あなたはウェルカムです、@Garry_G。 :) – eisbehr

関連する問題