2013-02-08 2 views
0

Это может быть просто, но я хочу изменить src тега img, который находится внутри тега li. Есть 4 лига, и только тег li, который имеет класс active, должен изменить src img тега.Как изменить src тега img с помощью JQuery

<ul> 
    <li><img src="example.jpeg" /></li> 
    <li class="active"><img src="Notexample.jpeg" /></li> 
    <li><img src="example.jpeg" /></li> 
    <li><img src="example.jpeg" /></li> 
</ul> 

Кроме того, активные переключатели класса между тегами LI, чтобы изменить источник ...

+1

"возможно"? : p – Archer

+0

почему вы отправляете вопрос дважды !!! – asifsid88

+1

@Archer Автогенерированный комментарий. Невозможно указать, что это точный репост, а не как-то похожий вопрос. –

ответ

1
... 
... 
//code where you are changing the class 
... 
... 

$('li').each(function() { 
    if($(this).attr('class').indexOf("active") !== -1) 
    { 
     //Active class is applied 
     $(this).children().children().attr("src", "assets/img/button_home_selected3.png"); 
    } 
    else 
    { 
     $(this).children().children().attr("src", "assets/img/button_home_plain.png"); 
    } 
}); 

... 
... 
+0

Что произойдет, если есть 'li' с классом' inactive'? – Archer

+0

Он указал, что у него тоже есть класс 'inactive'? – asifsid88

+1

В jQuery нет функции '.class()'. Вы ищете 'this.className' или' $ (this) .attr ('class') '. –

1

Попробуйте это ...

$("li.active img").attr("src", "notexample.jpg"); 

Если вы изменяете, который имеет литий активный класс, то вам нужно снова запустить этот код.

Если вы хотите изменить СРК назад, когда он теряет активный класс, это сделать ...

$("li:not(:has(.active))".attr("src", "example.jpg"); 
+0

Это может показаться немного запоздалым, но я забыл сказать вам, что теги li динамически добавляются, только первый li доступен и активен, а остальные три добавляются позже, поэтому вы видите, что это выполняется только один раз, но не для всех тегов .... – Hunain

+0

Вы должны сделать выше *, когда * вы добавляете элементы динамически, а не один раз. – Archer

+0

Они меняются, но после щелчка, src должен меняться с изменением активного класса, поскольку он переключает между тегами li – Hunain

1

Вы делаете это с помощью attr()descendant selector из JQuery.

$('li.active img').attr('src', 'newval') 
+0

Это может показаться немного запоздалым, но я забыл сказать вам, что теги li динамически добавляются, только первый li доступен и активен, а остальные три добавляются позже, поэтому вы видите, что это выполняется только один раз, но не для всех тегов ... – Hunain

+0

Можете ли вы указать, где вы хотите изменить src из img? – Adil