2

この特定の問題に対する答えは見つかりませんでした。

動的に生成されたテーブルがあります。名前、国、ランキング、ポイントを含むスコアテーブル。純粋なテキストを画像に置き換えたい。

<table>
  <tr>
    <td>1.</td>
    <td>Lindsey Vonn (usa)</td>
    <td>440</td>
  </tr>
  <tr>
    <td>2.</td>
    <td>Lara Gut (sui)</td>
    <td>400</td>
  </tr>
  <tr>
    <td>3.</td>
    <td>Nicole Hosp (at)</td>
    <td>380</td>
  </tr>
</table>

目標は、(米国)を米国旗(画像)に置き換えることです。(sui)なども同じです...テーブル、td、trのIDやクラスはありません。

4

5 に答える 5

1

regexなどを使用\(([a-z]*)\)し、戻り値を使用して、その名前のファイルをimg src:として表示します。

$("table tr td:nth-child(2)").each(function(index, item) {
    $(item).html(function(index, text) {
        return text.replace(/\(([a-z]*)\)/, "<img src=\"$1.jpg\" />");
    });
});

フィドルはここにあります

于 2012-12-10T13:07:50.110 に答える
0

ちょっと人は簡単な解決策とこれまでで最高の解決策ですが、人々の名前で行ったように旗の画像名を変更する必要があります。たとえば、(usa)の場合は、旗の画像名をusa.jpgで変更する必要があります。 )sui.jpgで旗の画像名を変更する必要があります:

JSFIDDLEへのリンク

$("table tr td:nth-child(2)").each( function() { // this line is edited!
    var g = $(this).text();
    if(g!="") {
    var n = g.split("(");
        var t= n[0];
        var m = n[1];
        var s = m.replace(")", "");
        var img_code = "<img src='.html/"+s+".jpg'>"; // here you can change path. I have edited it for .html directory!
        $(this).html(t+img_code);
    }
});

注:usa.jpgまたはsui.jpgの画像がないため、画像はjsfiddleに表示されません。

于 2012-12-10T13:49:38.240 に答える
0
(function($) {
  var icons = {
    usa: '/path/to/usa.png',
    sui: '/path/to/sui.png',
    at:  '/path/to/at.png'    
  };

  // on DOM ready
  $(function() {
    // you need a way of selecting
    // that table and this selector
    // is dangerously generic
    var table = $('table'),
        markup = table.html(),
        image;

    $.each(icons, function(icon, path) {
      image = '<img src="' + path + '" alt="' + icon + '">';
      markup = markup.replace('(' + icon + ')', image); 
    });

    table.html(markup);
  });
}(jQuery));
于 2012-12-10T13:05:00.367 に答える
0
$.each($("table tr td:first"),function(){
if($(this).html().indexOf("usa"))
{
$(this).html($(this).html().replace("<img src=''></img>)
}
...

});
于 2012-12-10T13:05:28.927 に答える
0

JavaScriptで

var xx=document.getElementsByTagName('table')[0];
for (var i=0;i<xx.getElementsByTagName('tr').length;i++)
document.write(xx.getElementsByTagName('tr')[i].getElementsByTagName('td')[0].innerHTML="<img src='anything.jpg' />");
于 2012-12-10T13:14:25.983 に答える