如何在jquery中重置div标签

时间:2012-09-19 11:31:03

标签: jquery dom

我的html页面中有一个下拉框,我需要将下拉列表重置回原始状态。我的代码段如下:

<div id="countries" >
 <!---------------I select a particular module----------------->
     <select id="modules" onchange = "getRole()"> <!--Function getRole() called here-->
                <option>---Select---</option>
                <option value="1">Module1</option>
                <option value="2">Module2</option>
                <option value="3">Module3</option>
                <option value="4">Module4</option>
        </select>
  <!-Based on the modules some processing is done and countries are displayed->
     <select multiple="multiple" id="country" name="country[]">

            <option value="1">India</option>
            <option value="2">USA</option>
            <option value="3">Russia</option>

       </select> 
</div>

我需要在进行一些处理后重置下拉菜单

换句话说,我需要在使用我的下拉菜单完成所有处理后恢复原始状态。

我正在使用.clone(),但这似乎不起作用。

function getRole() {
    //CLone the id 'countries'
    var cloneobj = $('#countries').clone();

    //Some processing here
    ....

    //After processing get back the original state
    $('#countries').replaceWith(cloneObj);
}

这里的问题是克隆正在创建重复的id,因此dosent似乎是正确的解决方案。谁能帮忙。请

2 个答案:

答案 0 :(得分:1)

首先,为id

提供#
var cloneobj = $('#countries').clone();

并尝试

$('#countries').replaceWith(cloneObj);

Javascript对函数区分大小写!!!

clone()Clone() 不同。

更新2

我抓住了你:你错过了</select>标签和评论问题

<div id="countries" >
 <!---------------I select a particular module----------------->
     <select id="modules" onchange = "getRole()"> <!--Function getRole() called here-->
                <option>---Select---</option>
                <option value="1">Module1</option>
                <option value="2">Module2</option>
                <option value="3">Module3</option>
                <option value="4">Module4</option>

     </select> <!-- Here you forgot -->

  <!--Based on the modules some processing is done and countries are displayed !. You forgot one `-` -->
     <select multiple="multiple" id="country" name="country[]">

            <option value="1">India</option>
            <option value="2">USA</option>
            <option value="3">Russia</option>

       </select> 
</div>

更新3

使用jquery事件查看我的示例:http://jsfiddle.net/6WLVC/

但是,我不知道为什么getRole()onchange标记中使用select事件仍无效。

似乎jQuery函数仅在$(function(){ ... });初始化中起作用。

答案 1 :(得分:0)

我认为您应该使用clone()区分大小写),使用ID哈希 #,并使用正确的对象做替换。 (您将克隆的对象保存在cloneobj中并使用未定义的cloneObj替换(区分大小写!)

克隆选项并替换如下:

function getRole() {
    //Clone the id 'countries'
    var clonedObj = $('#countries').clone();

    //Some processing here
    ....

    //After processing get back the original state
    $('countries').replaceWith(clonedObj);
}