<select name="DropList" id="serverDropList"> <option selected="selected" value="2">server1:3000</option> <option value="5">server3:3000</option> </select>
我知道在原型中,我可以通过$(‘serverDropList’)获取值,但是如何获得“server1:3000”?
解决方法
我不认为Prototype有任何快捷方式为你做,所以:
var box = $('serverDropList'); var text = box.selectedIndex >= 0 ? box.options[box.selectedIndex].innerHTML : undefined;
…给你所选选项的innerHTML,或者如果没有,则为undefined.
如果您愿意,您可以使用Element#addMethods
定义一次,并在所有选择框上可用:
Element.addMethods("SELECT",(function() { function getSelectedOptionHTML(element) { if (!(element = $(element))) return; var index = element.selectedIndex; return index >= 0 ? element.options[index].innerHTML : undefined; } return { getSelectedOptionHTML: getSelectedOptionHTML }; })());
用法:
var text = $('serverDropList').getSelectedOptionHTML();
定义时,我使用了一个命名函数.如果你没有打扰命名功能(我是always use them),你可以使它更简单一些:
Element.addMethods("SELECT",{ getSelectedOptionHTML: function(element) { if (!(element = $(element))) return; var index = element.selectedIndex; return index >= 0 ? element.options[index].innerHTML : undefined; } );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。