使用Javascript从选择列表中设置选项的属性

时间:2014-03-10 14:07:37

标签: javascript php

我正在尝试添加由另一个开发人员创建的现有脚本。目的是在某些情况下从下拉列表中显示项目并隐藏在其他实例中。我添加了一些代码,我意识到我被告知我想要选择的东西不存在。这是我跑的?

var menuNav = document.getElementById("Dir_Drop");
var MenuVal = menuNav.options[menuNav.selectedIndex].value;


menuNav.options["member"].show();

HTML:

<div id="dir-dropdown"  >   
 <select id="Dir_Drop">
     <option value="">-- Navigate Here --</option>
 <?php if ($pageOrg->getShowTabsMembers() == "1"){ ?>
     <option value="member" onchange="return ClearPrintQueue();">Members</option>
 <?php } ?>  
 <?php if ($pageOrg->getShowTabsFamilies() == "1"){ ?> 
     <option value="family" onchange="return ClearPrintQueue();">Families</option>
  <?php } ?>
  <?php if ($pageOrg->getShowTabsGroups() == "1"){ ?> 
     <option value="group" onchange="return ClearPrintQueue();">Groups</option>
 <?php } ?>
 <?php if ($pageOrg->getShowTabsChurchStaff() == "1"){ ?>  
     <option value="staff" onchange="return ClearPrintQueue();">Church Staff</option>
<?php } ?>
    </select>

我在firefox中看到的错误是:“TypeError:menuNav.options.family is undefined”

我非常感谢有关解决这个问题的任何意见。

1 个答案:

答案 0 :(得分:1)

options需要index - 不是当前文字。您将必须迭代并找到当前文本,如下所示:

for (var i = 0; i < menuNav.options.length; i++) {
    if (menuNav.options[i].text == "Members") {
        //found the index with text "Members" -- do logic
    }
}