如何使alert()返回123,456或第n组密钥?
我想检索索引键是对相应的选项值进行一些链式操作。
注意:索引键也可以是字母数字。
HTML:
<select name="option[group][123]">
<option>a</option>
<option>b</option>
</select>
<select name="option[value][123]">
<option>1</option>
<option>2</option>
</select>
<select name="option[group][456]">
<option>a</option>
<option>b</option>
</select>
<select name="option[value][456]">
<option>1</option>
<option>2</option>
</select>
脚本:
$("select[name^='option[group]']").change(function(){
alert('Index:' + $(this).fieldsetIndexKeyIdentifier());
// Do something with option values of group
});
答案 0 :(得分:2)
您可以使用名称属性解析它:
$("select[name^='option[group]']").change(function(){
var nums = this.name.match(/\[(\d+)\]$/)
if (nums) {
alert('Index:' + nums[1]);
}
// Do something with option values of group
});
此处的演示演示:http://jsfiddle.net/jfriend00/TcRzW/
或者,如果你想要名字中最后一个索引的任何字符序列,那就是:
$("select[name^='option[group]']").change(function(){
var nums = this.name.match(/\[([^\]]+)\]$/)
if (nums) {
alert('Index:' + nums[1]);
}
// Do something with option values of group
});
此处的演示演示:http://jsfiddle.net/jfriend00/TcRzW/
如果你现在想知道你正在做哪个组号,你可以这样做:
var selectGroups$ = $("select[name^='option[group]']");
selectGroups$.change(function(){
var index = selectGroups$.index(this);
// index will be a number like 0, 1, 2, 3 for which
// sequential "select[name^='option[group]']" we are operating on.
});
答案 1 :(得分:-1)
这并没有直接回答这个问题,但我完成了这样的链式选择字段:
$("select[name^='option[group]']").change(function(){
var valueField = this.name.replace(/group/, 'value');
$("select[name='"+ valueField +"']").somefunction(...);
});