2010-05-07 2 views
2

Я хотел бы выполнить следующие с JQuery:Показать элементы в зависимости от HTML значения тега

При нажатии на эту ссылку

<a href="#">Cars</a> 

Я хотел бы все дивы, как те,

<div class="product"> 
    <div class="category">Cars</div> 
</div> 

что-то делать.

Вы получаете идею, у меня есть меню со списком категорий и список продуктов, каждый из которых содержит div с названием категории, и я хотел бы, чтобы они скрывали/показывали.

ответ

8

Я не уверен, если я полностью понимаю ваш вопрос, но если вы хотите, класс Div = «категории» автомобили появятся, когда автомобили нажатия на ссылку, выполните следующее:

$("#menu a").click(function() { 
    var value = $(this).html(); 

    $.each($(".category"), function(i, item) { 
    if ($(item).html() == value) { 
     $(item).parent().hide(); 
    } 

    }); 
}); 

если вы хотите скрыть div просто заменит $(item).show(); с $(item).hide();

+0

Да, спасибо, что это идея, за исключением того, что я хотел, чтобы скрыть родителя div («продукт»), а не «категория». Мне удалось это сделать, выполнив $ (item) .parent(). Show(); вместо $ (item) .show(); пс. Я думаю, что в вашем коде есть опечатка, это должно быть if ($ (item) .html() == value) {вместо if ($ (item) .html == value) { – mike23

+0

да, это была опечатка , спасибо, я обновил свой ответ с вашими окончательными потребностями, хорошо, что я помог вам. Увидимся! :) можете ли вы пометить мои ответы как принятые? – GerManson

2

Предполагая:

<a href="#" class="highlight">Cars</a> 

затем:

$("a.highlight").click(function() { 
    $("div.category").removeClass("category") 
    .filter(":contains(" + $(this).text() + ")").addClass("highlight"); 
    return false; 
}); 

Что это делает добавить category класс к любому category гнезд DVI, которые содержат текст ссылки. Это можно изменить, чтобы изменить родительский div product, если вы тоже хотите сделать это.

Он работает, сначала удалив класс highlight из всех category divs, а затем добавив его к тем, которые его требуют.

1

DEMO:http://jsbin.com/ucewo3/11ИСТОЧНИК:http://jsbin.com/ucewo3/11/edit

$('a').click(function(e) { 
     var search_term = $.trim($(this).text()); //trim text 
     $('.category').each(function() { 
     ($(this).text().search(new RegExp(search_term , 'i')) < 0)//upper & lower 
     ? $(this).parent().hide() : $(this).parent().show(); 
     }); 
    }); 

Это держать текст внутри <a> тега и сделать поиск в <div class="category"> если <a> текст матч с .category текста он показывает соответствующий .product содержание!

Примечание:

  1. матч сценария как Прописных и Строчных символов

    пример матч Cars, а также cars и CARS

  2. также соответствует раздельного Текст как <a> cars </a>, а также <a>cars</a> и <a>cars </a>

  3. матч также текст с тегами как <div class="category"><span>cars</span></div>

+0

Интересный скрипт! Спасибо, что поделился – mike23

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