Javascript 获取更改事件上下拉数组的索引

Javascript 获取更改事件上下拉数组的索引,javascript,jquery,html,html-select,dropdown,Javascript,Jquery,Html,Html Select,Dropdown,我有多个下拉列表,它们的名称如下: 定价[1]、定价[2]、定价[3]等等。 在每个名为pricing[]的下拉列表的更改事件中,我希望获得定价[x]的索引,在这种情况下为“x”,以及所选值 HTML: 我还将onchange=pricechange与JQuery函数一起使用。 任何帮助都将不胜感激 作为参考,这是我努力实现的目标: 更改定价后,我将更新持续时间下拉列表。您可以使用$dropdownexample.prop'selectedIndex' 即: Html 我已经试过了,它似乎很有效

我有多个下拉列表,它们的名称如下: 定价[1]、定价[2]、定价[3]等等。 在每个名为pricing[]的下拉列表的更改事件中,我希望获得定价[x]的索引,在这种情况下为“x”,以及所选值

HTML:

我还将onchange=pricechange与JQuery函数一起使用。 任何帮助都将不胜感激

作为参考,这是我努力实现的目标:


更改定价后,我将更新持续时间下拉列表。

您可以使用$dropdownexample.prop'selectedIndex'

即: Html

我已经试过了,它似乎很有效。

使用find从select和Use索引中获取所选选项,并获取选项的索引

 console.log($(this).find('option:selected').index())
$'select'.change函数{ console.log “Name:”,this.Name, “Value:”,this.Value, 'Index:',$this.find'option:selected'。索引 } 1. 2. 1. 2. 1. 2.
因此,如果我理解正确,您需要的是select的索引,而不是select选项的索引

在这种情况下,您必须查看$this.attr'name'并从该字符串中提取索引

或者,您可以只使用索引向selects添加数据属性,这比从名称中提取数据属性更容易检索

我举了一个例子,说明如何做到这两个方面

还要确保如果选择是通过Ajax包含的,则不能使用.bind或.change,而是使用

$'select'.change函数{ 警觉的 '选择名称索引:'+$this.attr'name'。替换/定价\[\d+\]/,'$1'+ '\n选择数据索引:'+$this.data'index'+ '\n值:'+$this.val ; }; 1-1 1-2 2-1 2-2 3-1 3-2
如果这些都不起作用,那么您也必须发布HTML,并解释如何创建这些selectsThank。我已经添加了我如何创建下拉列表的完整代码。控制台显示了什么错误?看起来所有这些都应该与发布的标记一起工作,所以还有其他问题->您的select元素是动态创建的,例如ajax调用吗?谢谢您的努力。我相信这是为了得到所选值的索引,对吗?我想得到的是下拉列表名称中的索引。例如,我有一个名为pricing[1]的下拉列表,我将得到那里的索引,它是1。另外,我仍然不确定在哪里实现它,因为我无法访问下拉列表的OnChange函数。他肯定是这样做的。有多个选择,使用上下文确保它不会选择文档中的所有选项,而只选择当前选择中的选项。非常感谢。代码起作用了,非常有用。我只需要将另一个标记为答案,因为我的问题是如何检索名称中的索引。@Maranatha无问题:非常感谢。$this.attr'name'和replace函数就是我想要的。我现在可以操纵数据了。谢谢大家的帮助。
$('select').change(function(){
            console.log($('option:selected',this).index()); 
        });

$(function(){
        $('select').change(function(){
            console.log($('option:selected',this).index()); 
        });

$('.pricing').bind("change",function(){
        var id = $(this).attr('id');
        alert(id);
            });`
<select id="dropdownexample">
    <option value="yes">Yes</option>
    <option value="no" selected="selected">No</option>
</select>
alert($("#dropdownexample").prop('selectedIndex'));
 console.log($(this).find('option:selected').index())