当页面上有多个下拉菜单时,如何使用多个下拉菜单选项将类添加到元素?

时间:2018-09-18 09:10:22

标签: jquery

我当前正在为下拉选择框运行此代码。选择不同的选项时,会将一个类添加到div元素。到目前为止,所有这些代码都可以正常工作。问题是我希望它可以在单个页面上用于多个下拉选择器。 div mcga_具有多个倍数,它们会更改“ mcga_1,mcga_2等”。我尝试运行两次代码并更改元素名称,但是只有一个选择器可以工作,而另一个选择器则什么也不做。 ;

isinstance(key, set)

那没问题。它将类“ addThis”添加到每个“ mcga _ *” div。我尝试了以下方法,以使其在同一页面上也可以使用其他下拉菜单,但无济于事。

rv = set_contains_key(so, key);
if (rv < 0) {
    if (!PySet_Check(key) || !PyErr_ExceptionMatches(PyExc_TypeError))
        return -1;
    PyErr_Clear();
    tmpkey = make_new_set(&PyFrozenSet_Type, key);
    if (tmpkey == NULL)
        return -1;
    rv = set_contains_key(so, tmpkey);

任何有助于清除此代码并使用多个下拉菜单的帮助都将非常有用。

干杯!

1 个答案:

答案 0 :(得分:0)

首先,对更改事件使用相同的函数名称。您可以通过一种快速而肮脏的方式调用函数select_changed_2左右。

以一种更简洁的方式,我会为您选择的字段推荐数据属性,然后使用它们。

$(document).ready(function(){
  $("select[name*='custom_fields']").change(function(){
    select_changed( $(this).attr('data-change-it') );
  });
});

function select_changed(change_IDs){
  $("div[id*='"+ change_IDs +"']").each(function(){
    $(this).removeClass('addThis');
  });
  $("select[data-change-it*='"+ change_IDs +"']").each(function(){
    var selected = $(this).val();
    $('#'+selected).addClass('addThis');
  });
}

您的选择字段应如下所示:

<select name="custom_fields[mcgroup1]" data-change-it="mcga_"></select>
<select name="custom_fields[mcgroup2]" data-change-it="mcgb_"></select>