2012-11-07 77 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