根据下拉列表显示div - 脚本无法正常工作

时间:2013-09-02 09:11:58

标签: javascript jquery html

我正在尝试使用以下脚本根据下拉列表选择显示div。 它在一个简单的页面上完美地工作,没有任何东西;但是当我把它放在我正在开发的页面中时,它会弄乱整个页面,使其变黑并且在URL的末尾我得到这个..... / myPage.html#someIdInThePage。

JS:

<script type="text/javascript">
    $(document).ready(function () {
        function showTheTab(name) {
            name = '#' + name;
            $('div').not(name).hide();
            $(name).show();
        }

        $('#dropdown').change(function () {
            showTheTab($(this).val());
        });

        showTheTab($('#dropdown').val());

    });
</script>

HTML:

<form>
    <p>
        <select id="dropdown" name="dropdown">
            <option value="Pubs" selected="selected">Pubs</option>
            <option value="Councils">Councils</option>
            <option value="Property">Property</option>
            <option value="Various">Various</option>
            <option value="Universitys">Universitys</option>
        </select>
    </p>
</form>
<div id="Pubs">pubs</div>
<div id="Councils">councils</div>
<div id="Property">property</div>
<div id="Various">various</div>
<div id="Universitys">universitys</div>

1 个答案:

答案 0 :(得分:0)

此行:$('div').not(name).hide();将隐藏页面上除选定div之外的每个div。您将需要一个更具体的选择器来进行隐藏

实施例

使用Javascript:

$(document).ready(function () {

    function showTheTab( name ) 
    {
        name = '#' + name;

        $('div.Tabs > div').not(name).hide();

        $(name).show();
    }

    $('#dropdown').change( function() {

        showTheTab( $( this ).val() );
    });

    showTheTab( $('#dropdown').val() );

}); 

HTML:

<form>
      <p>
      <select id="dropdown" name="dropdown">
          <option value="Pubs" selected="selected">Pubs </option>
          <option value="Councils">Councils </option>
          <option value="Property">Property </option>
          <option value="Various">Various </option>
          <option value="Universitys">Universitys </option>
      </select>
      </p>
 </form>

<div class="Tabs">
    <div id="Pubs">pubs</div>
    <div id="Councils">councils</div>
    <div id="Property">property</div>
    <div id="Various">various</div>
    <div id="Universitys">universitys</div>
</div>