Jquery:克隆选择列表并按其值选择选项

时间:2010-01-24 12:48:12

标签: jquery attributes jquery-selectors html-manipulation

我正在尝试使用jQuery将选择列表附加到div表中,完成此操作后,我想选择列表中的特定选项,我正在尝试这样的事情:

// 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;

3 个答案:

答案 0 :(得分: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");

注意最后一行的变化。

答案 1 :(得分:0)

你应该写.val('none')val方法会找到<option> value。 (或者,那不是那个文本)

答案 2 :(得分:-1)

为什么要克隆它?尽可能简单,我将隐藏的html部分定义为字符串并简单地附加它们:

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

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

修改:已经回答了......