2010-01-24 204 views
0

我试图用jQuery将选择列表添加到div表中,完成后,我想选择列表的特定选项,我试图这样:Jquery:克隆选择列表并选择一个选项的值

// my hidden option list 
<div style="display:none;"> 
<select class="option_list"> 
    <option value="male">Male</option> 
    <option value="female">Female</option> 
    <option value="none">Unknown</option> 
</select> 
</div> 

<div id="my_table"> 
    <div> 
     <div>John</div> 
     <div>25</div> 
     <div></div> 
    </div> 
    <div> 
     <div>Emy</div> 
     <div>22</div> 
     <div></div> 
    </div> 
    <div> 
     <div>Sarah</div> 
     <div>28</div> 
     <div></div> 
    </div> 
</div> 

// $(".option_list") is hidden in HTML page, I clone and append it to my div table row 
$(".option_list") 
     .clone() 
     .appendTo ("#my_table > div > div:last-child") 
     .attr ("name", "a_dynamic_name_for_php_form") 
     .find ("option[value=none]").selected = true; 

回答

4

试试这个:

$(".option_list") 
    .clone() 
    .appendTo ("#my_table > div > div:last-child") 
    .attr ("name", "a_dynamic_name_for_php_form") 
    .find ("option[value=none]").attr("selected", "true"); 

请注意,在最后一行的变化。

+0

感谢您的帮助,它的工作原理 – vitto 2010-01-24 13:22:56

0

你应该写.val('none')val方法将找到与value<option>。 (或者,做不到这一点,该文本)

+0

我已经试过,但似乎将所有的选项值“无” – vitto 2010-01-24 13:19:57

+1

当然你需要在'select'元素上执行,而不是在所有'option'元素上执行。 – BalusC 2010-01-24 13:22:38

-1

为什么克隆它?简单,因为它可能是,我会定义隐藏的HTML部分作为串并简单地添加他们:

var add = '<select>' + 
      ' <option value="one">one</option>' + 
      ' <option two ... '+ 
      '</select>'; 
$(something).appendTo(add); 

有点脏,但... :) - (你甚至可以定义与ASP/PHP的那些隐藏的部分,所以你不必写每一行)

编辑:已经回答了...