Jquery:两个不同链接上的相同类号

时间:2013-02-11 03:28:21

标签: javascript jquery

我有以下功能

$('.link1-**number**').click( function() {
    $(".link2-**number**").hide()
});

当我点击link1- 数字时,我想隐藏link2- 数字,但前提是数字是相同的值。

所以 <a class="link1-1987">Link 1</a>
隐藏<a class="link2-1987">Link 2</a>

<a class="link1-1">Link 1</a>
隐藏<a class="link2-1">Link 2</a>

<a class="link1-5">Link 1</a>
隐藏<a class="link2-5">Link 2</a>

3 个答案:

答案 0 :(得分:2)

你的问题太模糊,但我相信你正在寻找以选择器开始的那个:

$('a[class^="b-"]').click();

它将匹配所有<a>,其中的某个类以b-开头。

DEMO

答案 1 :(得分:2)

回答你的编辑:

$('a[class^=link1]').click(function(){
    var number = this.className.split('-')[1];
    $('a.link2-' + number).hide();
});

DEMO

请注意,它仅在以下情况下有效:

  1. link1个锚只有一个类。
  2. 那个锚没有多个连字符。

答案 2 :(得分:1)

使用@gdoron中的选择器,这是怎么回事:

$('a[class^="link1-"]').click(function() {
    var className = $(this).attr('class');
    var i = className.indexOf('-');
    if (i >= 0) {
        var number = className.substring(i + 1);
        $(".link2-" + number).hide()
    }
});

注意:仅当“link1 - ###”元素具有单个类名时才有效。必须加强它以支持它们具有多个类名,但即使这样,“link1 - ###”类名也必须首先出现。

Live demo on jsfiddle

编辑:第二眼看,由于与选择器匹配的类名必须包含至少一个破折号,因此代码可以缩短为:

$('a[class^="link1-"]').click(function() {
    var className = $(this).attr('class');
    var number = className.substring(className.indexOf('-') + 1);
    $(".link2-" + number).hide()
});