2011-11-01 122 views
2

您好我有以下代碼(我已經刪除了一些臃腫的,但所需的一切就在這裏。複製一個輸入字段中的一組jQuery的其他輸入字段

<div class="item"> 
<div class="img_url"><input type="text" value="/siteimg/Designs/special-request.jpg" id="DT_Image_1" name="DT_Image_1" /></div> 
<div id="copy_to_all_1"><a href="#">Copy to all</a></div> 
</div> 

<div class="item"> 
<div class="img_url"><input type="text" value="" id="DT_Image_2" name="DT_Image_2" /></div> 
<div id="copy_to_all_2"><a href="#">Copy to all</a></div> 
</div> 

<div class="item"> 
<div class="img_url"><input type="text" value="" id="DT_Image_3" name="DT_Image_3" /></div> 
<div id="copy_to_all_3"><a href="#">Copy to all</a></div> 
</div> 

這些div的動態加載,所以可能會有更多的內容,我需要一種方法找到當前的ID,然後將其複製到列出的所有其他輸入ID

因此,在這種情況下,如果我點擊鏈接「Copy to all 「在第一項上,其他輸入字段將填充」/siteimg/Designs/special-request.jpg「

我需要升級jQuery魔法才能讓這個準備就緒。

+2

所以,你要我們寫這個的嗎?你有沒有嘗試過使它工作? –

+0

是啊,道歉我沒有粘貼我的代碼,但瀏覽器崩潰。在我粘貼之前,下面的人已經發布了答案。 – michaelotoole

回答

4
$(document).ready(function(){ 
    $('div[id^="copy_to_all"] a').live('click', function(){ 
     $('.img_url input').val($(this).closest('div.item').find('.img_url input').val()) 
    }); 
}); 

P.S .:你的標記很糟糕。應該是這樣的:

<div class="item"> 
    <input class="img_url" type="text" value="/siteimg/Designs/special-request.jpg" id="DT_Image_1" name="DT_Image_1" /> 
    <a class="copy_to_all" href="#">Copy to all</a> 
</div> 

和相應的功能從上方:

$(document).ready(function(){ 
    $('a.copy_to_all').live('click', function(){ 
     $('.img_url').val($(this).prev('.img_url').val()) 
    }); 
}); 

編輯:鋸

的div是動態加載

問題的一部分,將click()更改爲live()只是爲了安全起見。


編輯2:獎勵工作小提琴with originalwith decent markup.

+0

是的,說實話,編碼比我甚至粘貼它更糟糕,它被包圍在很多表格中。我只是把它削減到試圖解決問題。我只是錯過.closest函數:( – michaelotoole

+0

嗯,我可以建議你唯一的事情就是你首先關心你的標記。 – vzwick

0
Try This: 
<html> 
<head> 
<script 
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script> 
    $(document).ready(function() { 
     $('a').live('click', function() { 
      parentDivTagId = $(this).closest("div").attr("id"); 
      index = parentDivTagId.substring(12, (parentDivTagId.length)); 
      copyString = $('#DT_Image_' + index).val(); 
      $('input:text').val(copyString); 
     }); 
    }); 
</script> 
</head> 
<body> 

    <div class="item"> 
     <div class="img_url"> 
      <input type="text" value="/siteimg/Designs/special-request.jpg" 
       id="DT_Image_1" name="DT_Image_1" /> 
     </div> 
     <div id="copy_to_all_1"> 
      <a href="#">Copy to all</a> 
     </div> 
    </div> 

    <div class="item"> 
     <div class="img_url"> 
      <input type="text" value="" id="DT_Image_2" name="DT_Image_2" /> 
     </div> 
     <div id="copy_to_all_2"> 
      <a href="#">Copy to all</a> 
     </div> 
    </div> 

    <div class="item"> 
     <div class="img_url"> 
      <input type="text" value="" id="DT_Image_3" name="DT_Image_3" /> 
     </div> 
     <div id="copy_to_all_3"> 
      <a href="#">Copy to all</a> 
     </div> 
    </div> 

</body> 
</html> 
相關問題