<td>
<select name="ad_category" id = "ad_category" onchange="select_sub_cat(this.value)" >
<option value="#"></option>
<option value="jobs" id="jobs">Jobs</option>
<option value="sales" id="for_sale">For sale</option>
<option value="services" id="services">Services</option>
<option value="real_estate" id="real_e">Real estate/housing</option>
</select>
<span id="cat_help"><a href="">Help</a></span>
</td>
在上面的代码中,<a href="">
我希望传递所选选项的ID或任何信息,以便点击帮助时只会显示特定选项的帮助。但我的问题是,是否可以选择选项的ID?
答案 0 :(得分:1)
您应该使用按钮或其他不建议导航的元素。内联处理程序可能是:
<... onclick="alert(document.getElementById('ad_category').value);" ...>
更一般地说,一旦你引用了select元素:
var select = document.getElementById('ad_category');
您可以访问HTMLSelectElement interface定义的各种属性:
select.selectedIndex // index of selected option
select.options // collection of all options
select.options[select.selectedIndex] // the selected option (if there is one)
等等。
您可能还希望基于类值实现更通用的帮助系统。根据应显示的帮助,为表单控件提供一个类。然后帮助按钮可以获取以前的表单控件,抓取它的类并显示它。
e.g。
<style type="text/css">
.helpLink {
color: #CC00FF;
cursor: pointer;
}
</style>
<script type="text/javascript">
var showHelp = (function() {
var help = {
firstName: 'Enter your first name',
lastName: 'Enter your last name'
}
return function (el) {
var helpType;
var node;
do {
el = el.previousSibling;
} while (el && el.nodeType != 1)
if (el) {
helpType = el.className.match(/(^|\s)help-\w+/);
if (helpType) {
helpType = helpType[0].replace('help-','');
// Show help
alert(help[helpType]);
}
}
}
}());
</script>
<form name="form0" action="">
first name: <input type="text" class="help-firstName" name="firstName">
<span class="helpLink" onclick="showHelp(this)">?</span>
<br>
last name: <input type="text" class="help-lastName" name="lastName">
<span class="helpLink" onclick="showHelp(this)">?</span>
<br>
</form>
以上只是一个简单的演示。
答案 1 :(得分:0)
是的,您可以获得所选选项的ID:
//Place in event handler
var element = document.getElementById("ad_category");
element.options[element.selectedIndex].id
答案 2 :(得分:0)
答案 3 :(得分:0)
是的,您甚至可以选择如何完成工作。
由于select
有ID,您可以获得如下值:
var select = document.getElementByID('ad_category'),
value = select.value;
alert(value);
但是,由于select是a
元素的父级的兄弟,你也可以这样找到:
// This example is assuming quite a lot, so it's not really the best option and is
// provided merely for entertainment or trivia.
// Namely, this code requires that it is run in context of the a-element
// (means: 'this' refers to the 'a' -element)
// and also that the markup is exactly as in the example because of traversal.
var select = this.parentNode.previousElementSibling,
value = select.value;
alert(value);