如何在多个选择器位置上使用“属性开头”?

时间:2017-10-15 16:26:42

标签: jquery attributes

是否可以以多个元素组使用它的方式转换此代码?

$("#name, #name_choice").hover(function(){
  $("#name, #name_choice").toggle();
});
$("#name_choice").change(function(){
  $("#name").html($(this).val());
})

因此,不要复制粘贴此代码并调整我想要使用的id标记,例如,“属性以”方法开头。这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

通常情况下,最简单的方法是将其作为一个函数包装起来:

function setupThingy(mainId, choiceId) {
    var main = $("#" + mainId);
    var choice = $("#" + (choiceId ? choiceId : mainId + "_choice"));
    var both = main.add(choice);
    both.hover(function(){
      both.toggle();
    });
    choice.change(function(){
      main.html($(this).val());
    });
}

然后:

setupThingy("name");

理想情况下,如果您可以在结构上联系它们而不是每个id给它们,那可能更清晰......