2012-11-07 79 views
1

我有以下代碼jquery的獲取屬性

<a href="#" class="chosenflag" data-flag="<?php echo $lang;?>"><img class="flag" src="/img/flag/United Kingdom.png" alt="" /></a> 

<ul class="choices"> 
<li><a href="#" data-flag="uk"><img class="flag" src="/img/flag/United Kingdom.png" alt="" /></a></li> 
<li><a href="#" data-flag="de"><img class="flag" src="/img/flag/Germany.png" alt="" /></a></li> 
<li><a href="#" data-flag="es"><img class="flag" src="/img/flag/Spain.png" alt="" /></a></li> 
<li><a href="#" data-flag="fr"><img class="flag" src="/img/flag/France.png" alt="" /></a></li> 
<li><a href="#" data-flag="it"><img class="flag" src="/img/flag/Italy.png" alt="" /></a></li> 
</ul> 

與類「chosenflag」的聯繫是其拾取一個PHP變量,它要麼是英國激活標誌,DE,ES,FR,它。

我想要發生的事情是以某種方式從ul列表中獲取img src到所選標誌img src,具體取決於data-flag屬性。

有人能幫助我嗎?

回答

1

這應該工作,如果你點擊其中一個標誌。它應該把它的國旗圖像放在選定的國旗圖像點上。

$chosen = $('.chosenflag') 
$('.choices').on('click', 'a', function() { 
    // changes data-flag on .chosenflag 
    var dataFlag = this.data('flag'); 
    $chosen.data('flag', dataFlag); 
    // 'this' is the clicked on <a> 
    var src = this.find('img').attr('src'); 
    $chosenImg = $chosen.find('img'); 
    $chosenImg.attr('src', src); 
}); 

我想這就是你要找的。

1

要獲得已選定的標誌,做

var flag = $('a.chosenflag').data('flag'); 

爲了獲得圖像的src中具有一定data-flag列表的a元素,做

var src = $('ul a[data-flag='+flag+'] img').attr('src'); 

Demonstration