Javascript jquery结合了类似的代码

Javascript jquery结合了类似的代码,javascript,jquery,Javascript,Jquery,我有很多jquery的点击功能,它们非常相似,如何将它们结合起来以获得更短的代码。(使用regex或使用数组foreach?) 这应该做到: var elems = ["menu", "nav", "list"]; $.each(elems, function(i, elem){ $("."+elem).live('click',function(){ var value = $(this).html(); $('#'+elem).html(value);

我有很多jquery的点击功能,它们非常相似,如何将它们结合起来以获得更短的代码。(使用
regex
或使用
数组foreach
?)

这应该做到:

var elems = ["menu", "nav", "list"];
$.each(elems, function(i, elem){
    $("."+elem).live('click',function(){
        var value = $(this).html();
        $('#'+elem).html(value);
    });
});
  • 创建元素列表
  • 使用
    $对其进行循环。每个
  • 函数的第二个参数等于列表中的元素(
    菜单
    导航
    ,…)
  • 这应该做到:

    var elems = ["menu", "nav", "list"];
    $.each(elems, function(i, elem){
        $("."+elem).live('click',function(){
            var value = $(this).html();
            $('#'+elem).html(value);
        });
    });
    
  • 创建元素列表
  • 使用
    $对其进行循环。每个
  • 函数的第二个参数等于列表中的元素(
    菜单
    导航
    ,…)

  • Rob的回答绝对值得投票,但我只是想说,有时候你想限制两个元素之间的任意连接。为什么元素X的类必须与元素Y的ID同名?这是相当武断的,可能是一个麻烦,人们以后才能弄清楚

    相反,您可以这样处理它,使其更加健壮:

    <a href="#" class="foo" data-your-data-attr="alice">alice</a>
    <a href="#" class="foo" data-your-data-attr="bob">bob</a>
    <a href="#" class="foo" data-your-data-attr="sue">sue</a>
    

    Rob的回答绝对值得投票,但我只是想说,有时候你想限制两个元素之间的任意连接。为什么元素X的类必须与元素Y的ID同名?这是相当武断的,可能是一个麻烦,人们以后才能弄清楚

    相反,您可以这样处理它,使其更加健壮:

    <a href="#" class="foo" data-your-data-attr="alice">alice</a>
    <a href="#" class="foo" data-your-data-attr="bob">bob</a>
    <a href="#" class="foo" data-your-data-attr="sue">sue</a>
    

    问题!是
    .menu
    .nav
    。列出树中除
    文档
    之外的某个节点的所有子节点
    ?都在
    问题的第一个子节点中!是
    .menu
    .nav
    。列出树中除
    文档
    之外的某个节点的所有子节点
    ?都在
    的第一个子节点中感谢,这比I image容易。感谢,这比I image容易。请注意,数据属性应该是
    连字符分隔的,而不是
    camelCase
    。jQuery为您处理转换-
    。data('yourDataAttr')
    将引用
    数据您的data attr
    @Eric最准确,这是我的错误。请注意,数据属性应该用
    连字符分隔
    ,而不是
    camelCase
    。jQuery为您处理转换-
    。data('yourDataAttr')
    将引用
    数据您的data attr
    @Eric最准确的是,我的错误。