在没有页面加载的情况下,多次操作DOM中的选择选项选择值

时间:2014-08-30 00:37:46

标签: javascript jquery dom

我处于一个不幸的位置,我需要能够复制整个HTML块而不使用javascript / jquery重新加载页面,包括输入和选择。

我的大部分工作都在运作,但我对选择感到困惑。为了让它复制"正确,所以副本显示其复制的选定值,我需要明确设置属性"选择"来自select的副本。问题是,如果我更改我将要复制的选择的值,则先前的选择"选择"属性仍然存在,我不知道如何摆脱它。

以下是小提琴的链接,以下是向您展示我的意思的基本测试:fiddle。您需要检查选择列表中的元素并显示所有选项标记。

  1. 进行选择
  2. 按Enter按钮
  3. 观察所选属性继续您选择的选项
  4. 选择其他选项
  5. 点击回车按钮
  6. 观察现在有两个选项具有所选属性。此时我需要从第3步观察中删除所选属性
  7. HTML:

    <table>
      <tr>
        <td>
          <select>
            <option value="">Select One</option>    
            <option value="test1">Test1</option>
            <option value="test2">Test2</option>
            <option value="test3">Test3</option>
            <option value="test4">Test4</option>    
          </select>
        </td>
      </tr>
    </table>
    <button onclick="enterTest()">Enter</button>
    

    的Javascript

    function enterTest(){
        var $selectedOption = $("select").children(":selected");
        $selectedOption.attr("selected","selected");
    }
    

1 个答案:

答案 0 :(得分:1)

无需处理optionselected属性。

如果值是唯一的,

var $select = $("select");
function enterTest(){
    $select.clone().val($select.val()).appendTo('body');
}

Demo

否则,请使用selectedIndex

$select.clone().prop('selectedIndex', $select.prop('selectedIndex'))

Demo