-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(){..

当您a[name=submit_button]在页面加载后附加到 DOM 时,通过 ajax 请求动态地附加,因此您需要委托事件处理程序,普通的事件绑定在这里不起作用。

阅读更多关于.on()


笔记

对于一般的绑定语法.on()是这样的:

$(target).on(eventName, handlerFunction)

但对于委托事件系统税是

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

containerStatic-element在页面加载时属于 DOM 并包含target两者container并且target都是有效的 jQuery 选择器。

于 2012-06-20T08:08:27.533 回答