2013-09-12 3 views
0

У меня есть несколько кнопок .modif с заголовком атрибута, по-разному для каждого, например : title="one", тогда все поля имеют тот же класс .box_slide, но я пытаюсь показать просто тот, у кого также есть класс box_one и скрыть других, все ящики имели класс .box_slidejquery show, пытаясь показать элемент с тем же классом

Дело в том, что все ящики скрываются, может кто-то показать мне лучший способ сделать это.

$('.modif').click(function(){  
    var title = $(this).attr('title'); 
    $('.box_slide').hide(); 
    $('.box_' + title).show(); 
}); 

ответ

0

Вы должны изменить

$('.box_' + title).show(); 

на это:

$('.box_slide[title=box_' + title + ']').show(); 
+0

все еще спрятал их все, я попробовал их все ... – novoa

+0

Можете ли вы, пожалуйста, сделать скрипку для этого? http://jsfiddle.net/ – Scalpweb

+0

Попробуйте следующее: $ ('. box_slide [title =' + title + ']'). show(); – Scalpweb

1

Вы упоминаете в своем описании, что название "box_one". Но в коде, вы ставите его в качестве

$('.box_' + title).show(); 

Это приведет, как box_box_one

Следовательно, это может быть причиной проблемы.

Ниже будет работать, как ожидалось

$('.box_slide.box' + title).show(); 
+0

Извините, моя ошибка, название просто 'one' – novoa

+0

Итак, в этом случае этот конкретный элемент имеет только класс box_one? –

+0

и .box_slide, как – novoa

0

Вы можете использовать Attribute Starts With Selector \[name^="value"\], чтобы показать все элементы, которые имеют класс, начиная с box_ и скрыть конкретную один:

$('.modif').click(function(){     
    $("[class^='box_']").show(); 
    $('.box_slide').hide(); 
}); 
+0

OP не ищут для всех элементов, кроме одного. –

+0

спасибо, что это отредактировано –

0

Если я понимаю ваш вопрос, то следующие должны работать

$('.modif').click(function(){  
    var title = $(this).attr('title'); 
    $('.box_slide').hide(); 
    $('.box_slide .' + title).show(); 
}); 
0

Используйте это.

$('.modif').click(function(){  
    var title = $(this).attr('title'); 
    $('.box_slide').hide(); 
    $('.box_' + title).show(); 
}); 
+0

Я редактирую свой ответ, название это просто «один», но все еще не работает – novoa

+0

кажется, что любой другой метод его переопределяет. Можете ли вы вставить часть html? – sudhAnsu63

Смежные вопросы