2009-08-31 97 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

它迭代了所有的选项值,但我想直接得到选择的选项值