3

私は ajax のものを省く単純化されたバージョンのコードで私の質問を説明しようとします。

私がやりたいのは、ajax を介してフォームを取得し、いくつかの値を変更して追加することです。これはかなり簡単なはずですが、うまくいきません。

私のコードは...

    <html>
<head>
    <title>Test Jquery</title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            var str = "<div><form><textarea></textarea></form></div>"
            $('a#action').on('click',function(e){
                e.preventDefault();
                var result = str;
                var test = $("textarea",result).html("Hello world");

                console.log(test);
                console.log(result);
                $(".sections").append(result);
            });
        });
    </script>​​​​​​
</head>
<body>
<div id="content">
    <a href="#" id="action">go action</a>
<div class="sections">

</div>
</div>
</body>
</html>#

変数strは、サーバーからダウンロードされたフォームをシミュレートする必要があります...クリックすると、変更したい

価値

textareaと挿入"Hello World"...

私が見たいのは、変更され、セクション div に追加された str 変数です...

サブセット内のテキストエリアを変更できます

$("textarea",result).html("Hello world");

しかし、それを全体の結果に反映させる方法がわかりません...

私が言ったように、これは些細な抽象化であるため、str異なる場合があります...

4

2 に答える 2

4

次のことを試してください。

var str = "<div><form><textarea></textarea></form></div>";
$('a#action').on('click',function(e){
  e.preventDefault();
  var result = str;
  var $ajaxForm = $(str);
  $("textarea", $ajaxForm).val("Hello world");
  $ajaxForm.appendTo($(".sections"));
});​

デモ

は単なる文字列であるため$("textarea",result).html("Hello world")、この例では機能しないことに注意してください。DOM 要素またはjQueryオブジェクトresultのいずれかである必要があります。

jQuery( セレクター [, コンテキスト] )

selector - セレクター式を含む文字列

context - コンテキストとして使用する DOM 要素、ドキュメント、または jQuery

于 2012-08-31T11:45:14.557 に答える
0

最初に結果を DOM に追加する必要があります。

それから試してください

form.find("textarea").val("Hello world");
于 2012-08-31T11:40:43.590 に答える