0

アイテムのリストがあり、それぞれに場所のリストを含む属性があります。

私が本質的にやりたいのは、「コンテナ」属性をチェックし、テキストを交換して画像に置き換えるためのある種の「ifステートメント」(私が推測する)です。

したがって、コンテナ属性が「英国、スペイン」の場合、コンテナ属性が「英国」の場合、テキストを削除して英国国旗の画像に置き換えます。そのため、属性に複数の場所が含まれている場合は、テキストではなく、各場所のフラグのアイコンが含まれます。デモンストレーションのために、以下を含めました。

$('.location.container').attr('location');

これに関するヘルプは大歓迎です。

4

4 に答える 4

0

フラグへの国のマップがあると仮定します。

var flags = {
    "United Kingdom": "/images/uk.gif",
    "Spain": "/images/spain.gif"
}

$('.location.container').each(function() {
    var locations = $(this).attr('location').split(/,\s*/);

    for (var i = 0, n = locations.length; i < n; ++i) {
        $(this).append('<img src="' + flags[locations[i]] + '" />');
    }
});
于 2013-03-29T09:42:08.127 に答える
0

これを試してください:リンク

HTML:

<div class="location-container" Location="Spain">
  <div class="text-container">United Kingdom, Spain</div>
</div>

<div class="location-container" Location="United Kingdom">
  <div class="text-container">United Kingdom, Spain</div>
</div>

JS

$('.location-container').each(function(){


  if( $(this).attr('Location').toString().indexOf("United Kingdom")!=-1) {
   $(this).find('.text-container').text(  
   $(this).find('.text-container').text().replace('United Kingdom','<img src="http://northcyprusfreepress.com/wp-content/uploads/2011/06/flag_icon_uk.gif"/>'));
 //   $(this).find('.text-//container').html($(thi//s).find('.text-container').text());


  }
if($(this).attr('Location').toString().indexOf("Spain")!=-1) {

  $(this).find('.text-container').text(  $(this).find('.text-container').text().replace('Spain','<img src="http://www.images2.welproma.com/spain_flag_icon.png"/>'));



  }
   $(this).find('.text-container').html($(this).find('.text-container').text());
});
于 2013-03-29T09:34:30.637 に答える
0

試す :

JQueryデータ

HTML :

<span data-name = "United Kingdom" data-location = "Europe">XYZ</span>
<span data-name = "United States" data-location = "America">XYZ</span>

Javascript :

var location = $('.location.container').data('location');
//similarly also get name = $('.location.container').data('name'); 

if(location === "United Kingdom"){
//replace flag
}
else{
//retain flag
}
于 2013-03-29T09:36:27.603 に答える
0
<div class="location">
  <span class="text">United Kingdom</span>
</div>

$(".location").each{
  function(){
    var text = $(this).closest(".text");
    text.hide();
    var flagUrl = 'http://blabla/flags/' + text.text() + '.jpg'; 
    $(this).append('<img />').attr('src', flagUrl );
  }
}

また、複数の場所がある場合は「テキスト」を分割し、それらを反復する必要がありますが、これで開始できます。

于 2013-03-29T09:39:26.730 に答える