найти нужную ссылку / find()
Здравствуйте.
Подскажите, мне нужно найти ссылку в которой в id есть "build-" и class="active" и после этого получить полный id найденной ссылки
$("a[id*='build-']").find("active")
искать наверно можно так, но =)) как получить полный id найденной ссылки? =) спасибо |
var id = $('a[id^="build-"].active').attr("id");
|
спасибо =)
|
ммм.. на странице есть несколько групп ссылок с id="build-номера" с id="type-номера" и т.д.
есть функция, в которую хочу добавить возможность определять при нажатии на какую ссылку и из какой группы вызвана эта функция, например для того, чтоб только в этой группе поменять класс 'active' (удалить, добавить) для какой-нибудь ссылки если сделать так:
$('a.active').removeClass('active');
$(this).toggleClass('active');
то меняются конечно все ссылки на странице с классом 'active', но хотелось бы менять только в одной из групп, в той, откуда вызвана эта функция Спасибо |
покажите пример HTML-кода
|
Вот кусок HTML-кода (генерится из php)
<div id="bld_list_panel" class="scrollable"> <ul class="items"> <li><a id="build-1" class="navi" href="#1">Item1</a></li> <li><a id="build-3" class="navi" href="#3">Item3</a></li> <li><a id="build-0" class="navi active" href="#0">Item0</a></li> </ul> </div> <div id="dev_list_panel" class="scrollable"> <ul class="items"> <li><a id="dev-1" class="navi" href="#1">Item1</a></li> <li><a id="dev-3" class="navi" href="#3">Item3</a></li> <li><a id="dev-0" class="navi active" href="#0">Item0</a></li> </ul> </div> <div id="type_list_panel" class="scrollable"> <ul class="items"> <li><a id="type-1" class="navi" href="#1">Item1</a></li> <li><a id="type-3" class="navi" href="#3">Item3</a></li> <li><a id="type-0" class="navi active" href="#0">Item0</a></li> </ul> </div> Вот функция:
// это эвент по клику на одной из ссылок группы build
$("a[id*='build-']").live('click',listDev);
// это эвент по клику на одной из ссылок группы type
$("a[id*='type-']").live('click',listDev);
function listDev() {
if(!load_in_process)
{
// Хотелось бы менять "active" (добавить/удалить) только в одной из групп, в той, откуда вызвана функция listDev
$('a.active').removeClass('active');
$(this).toggleClass('active');
load_in_process = true;
$.ajax(
{
type: "POST",
url: "/../lib/sw_ajax_lib.php",
data: ({func :"listDev",build: $('a[id^="build-"].active').attr("id"),
type: $('a[id^="type-"].active').attr("id"), change:1}),
dataType: "html",
success:function (result) { var api = $("#dev_list_panel").scrollable();
api.getItems().remove();
api.getItemWrap().append(result);
api.reload().begin();}
});
Cпасибо |
Пока решил проблему таким образом:
Заменил строку:
$('a.active').removeClass('active');
на
$(this).parent().parent().parent().find('a.active').removeClass('active');
но по моему - коряво очень =( |
<ul class="items">
<li><a class="navi" href="#0">Item0</a></li>
<li><a class="navi" href="#1">Item1</a></li>
<li><a class="navi active" href="#2">Item2</a></li>
</ul>
<ul class="items">
<li><a class="navi" href="#0">Item0</a></li>
<li><a class="navi" href="#1">Item1</a></li>
<li><a class="navi active" href="#2">Item2</a></li>
</ul>
<ul class="items">
<li><a class="navi" href="#0">Item0</a></li>
<li><a class="navi" href="#1">Item1</a></li>
<li><a class="navi active" href="#2">Item2</a></li>
</ul>
<script type="text/javascript">
$(".items").click(function (e) {
var target = $(e.target);
if (target.hasClass("navi") && !target.hasClass("active")) {
$(this).find(".active").removeClass("active");
target.addClass("active");
e.preventDefault();
}
});
</script>
|
еех... Все просто.. :(
Спасибо! |
| Часовой пояс GMT +3, время: 08:05. |