-1

動的に作成されたオブジェクトから値を取得するためのソリューションをまだ探しています。

次のコードは、zip2.php から動的オブジェクトを生成します。

$(document).ready(function() { 
    $("#submit").click(function(e) {
      e.preventDefault();

      var q = $("#k").val();

      $.ajax({
          type: "POST",
          url: "zips.php",
          data: "q="+ q,
          dataType: "html",
          success: function(res) {
               $("#result").html(res); $('#result').trigger('create');  
        },
      });

    });       

});

<div data-role="content">

 <div id="result"></div>

</div>

このような形でオブジェクトを作成しました。 (zips.phpの内容)

<? echo " <div><ul id='zips' data-role='listview' data-inset='true' data-theme='c'>";
while($row = mysql_fetch_array($result)) {
$out .= "
 <li>
 <a name='submit_button' href='#mainPage'><span class='zip1'>$zip1</span>-
 <span class='zip2'>$zip2</span><br />
 <span class='address'>$row[zp_sido] $row[zp_gugun] $row[zp_dong] $row[zp_bunji]   </span></a>
</li> \n";
}
  echo $out."</ul>";

?>

そして、このスクリプトは動的オブジェクトから text() 値を取得し、それをフォームに挿入します。

   <script>
$(document).ready(function() {
$('a[name=submit_button]').click(function(){
                                         var inputVal1 = $('.zip1, this).text(); 
 var inputVal2 = $('.zip2', this).text(); 
 var inputVal3 = $('.address', this).text();


     $('div input[name=zip_code1]').val(inputVal1);  
$('div input[name=zip_code2]').val(inputVal2); 
$('div input[name=address1]').val(inputVal3); 

   </script>

   <div>
    <form>
      <input type="text" id='zip_code1' name="zip_code1" > - <input type="text" id='zip_code2 name="zip_code2"><br />
      <input type="text" id='address1' name="address1">
    </form
   </div>

問題は、「var inputVal1 = $('.zip1, this).text();」ということです。動的オブジェクト クラス名「zip1」から null を取得します。

4

1 に答える 1

1

それ以外の

$('a[name=submit_button]').click(function(){..

これを使って:

$('#result').on('click', 'a[name=submit_button]', function(){..

ページの読み込み後に動的に ajax リクエストを介して DOMにa[name=submit_button]追加するため、イベント ハンドラをデリゲートする必要があるため、通常のイベント バインディングはここでは機能しません。

についてもっと読む.on()


ノート

の一般的なバインディング構文.on()は次のようになります。

$(target).on(eventName, handlerFunction)

しかし、デリゲートイベントのsystaxは

$(container).on(eventName, target, handlerFunction)

containerこれは、ページの読み込み時にDOMStatic-elementに属し、targetと の両方containerを含み、target有効な jQuery セレクターです。

于 2012-06-20T08:08:27.533 に答える