2009-08-31 104 views
2

這裏是我的完整測試代碼,它未能獲得的價值:如何使用jQuery克隆後獲取選定的值?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 

<head> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
    <meta http-equiv="Content-Language" content="en-us" /> 
    <title>Job Search</title> 
    <script language="javascript" type="text/javascript" src="script/jquery-1.3.2.js"></script> 
    <script language="javascript"> 
     $(document).ready(function(){ 
      $('#test').click(function(){ 
       $('#container').clone().attr('id', 'container2').find('select').each(function() { 
        var $elem = $(this); 
        var value = $elem.val(); 
        alert(value); 
       }); 
      }); 
     }); 
    </script> 
</head> 

<body> 
<div id="container"> 
    <select> 
     <option value="">--</option> 
     <option value="Service">Service</option> 
     <option value="Sales">Sales</option> 
     <option value="Marketing">Marketing</option> 
     <option value="Finance">Finance</option> 
     <option value="Engineering">Engineering</option> 
     <option value="Management">Management</option> 
    </select> 
</div> 
<input type="button" id="test" /> 
</body> 

</html> 
+0

編輯我的答案。 – rahul 2009-08-31 12:35:33

+0

是否要將克隆的元素插入DOM? – rahul 2009-08-31 12:40:37

回答

2
$('#container').clone().attr('id', 'container2').find('select > option').each(function() { 
       var $elem = $(this); 
       var value = $elem.val(); 
       alert(value); 
      }); 

改變了選擇的查找方法來選擇選擇>選項。

此外,如果你不打算把它追加到DOM,你爲什麼要克隆元素。

爲了得到克隆元素的設定值的。如果你需要插入克隆的元素添加到DOM可以使用

$('#container').clone().attr('id', 'container2').find('select > option:selected').val() 

可以使用

$('#container').clone().attr('id', 'container2').appendTo("body") 

和完整代碼獲取在將克隆元素插入到DOM後選定的選項值

$('#container').clone().attr('id', 'container2').appendTo("body").find('select > option:selected').val() 

完整代碼f或點擊按鈕

$(document).ready(function(){ 
      $('#test').click(function(){ 
       $('#container').clone().attr('id', 'container2').appendTo("body").find('select > option:selected').each(function() { 
        alert ($(this).val()); 
       }); 
      }); 
     }); 
+0

$('#selectList option:selected')。val()?還是沒有區別? – staterium 2009-08-31 12:17:47

+0

我更新了帖子,我懷疑它與克隆有關() – omg 2009-08-31 12:26:38

+0

它迭代了所有的選項值,但我想直接得到選擇的選項值