2013-07-09 3 views
1

У меня есть элементы, созданные динамически с использованием php с идентификатором feed_container. Я хочу, чтобы каждый отдельный элемент мог быть выцветшим отдельно. Я попытался выполнить это, указав каждому элементу определенное имя класса, а затем используя jquery, чтобы получить этот класс, а затем исчезнуть, но ничего не происходит. Код jquery приведен ниже. Все, что я исследовал, говорит, что я делаю все правильно. Что-то не так?Код jQuery get attr issue

$(document).ready(function(){ 
    $("#feed_container").click(function(){ 
    var $key = $("#feed_container").attr('class'); 
    $key.fadeTo("slow",0.15); 
    }); 
}); 
+2

У вас есть несколько элементов с одинаковым ID? – Barmar

+0

Вы можете получить доступ к элементу с щелчком, используя '$ (this)'. См. Мой ответ. –

+0

или 'var $ key = this.className' .. –

ответ

2

Перед использованием fadeTo вам необходимо выбрать элементы по классам.

$(document).ready(function(){ 
    $("#feed_container").click(function(){ 
    var $key = $("#feed_container").attr('class'); 
    $('.' + $key).fadeTo("slow",0.15); 
    }); 
}); 
0

Следующий оператор возвращает строку, а не объект JQuery

$("#feed_container").attr('class') 

Таким образом, вы не можете использовать

var $key = $("#feed_container").attr('class'); 
$key.fadeTo("slow",0.15); 

Поскольку $ ключ является строкой и не имеет fadeTo

Возможно, вы имели в виду

$("#feed_container").fadeTo(...) 
0

Почему бы просто не просто вытереть контейнер, а получить первый класс? У вас уже есть элемент в $(this):

$("#feed_container").click(function() { 
    $(this).fadeTo("slow", 0.15); 
}); 

Если у вас есть несколько элементов, назначить класс вместо:

$(".feed_container").click(function() { 
    $(this).fadeTo("slow", 0.15); 
});