0

我有一个项目列表,每个项目都有一个包含位置列表的属性。

我基本上想做的是某种类型的“if 语句”(我假设)来检查“容器”属性,换出文本并用图像替换它。

因此,如果容器属性为“英国,西班牙”,我想说,如果容器属性等于“英国”,则删除文本并替换为英国国旗的图像。因此,如果属性包含多个位置,而不是文本,它将包含每个位置标志的图标。出于演示目的,我包括以下内容;

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

对此的任何帮助将不胜感激。

4

4 回答 4

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 回答
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 回答