これは本当に「汚い」ソリューションですが、あなたのタスクにアプローチする方法の一例としてのあなたを提供します:
<body>
<table id="the_table">
<tr>
<td>random words from DB: like an apple, pet, whatever, yet another apple</td>
</tr>
</table>
<script>
$(document).ready(function() {
var content_cell,
random_words = "",
colors_map = {
"apple": "red",
"pet": "blue"
};
// selector for your specific table cell
$('#the_table tr').each(function() {
content_cell = $(this).find("td:first");
});
// get cell content
random_words = content_cell.html();
// replace your keywords according the map
$.each(colors_map, function(index, value) {
random_words = random_words.replace(new RegExp(index, 'g'), "<font color='" + value + "'>" + index + "</font>");
});
// set back html content into the cell
content_cell.html(random_words);
});
</script>
</body>
私はそれを例として使用します。この行について私に説明することはできますか? "新しいフォントは、フォントの色を変更するために使用されます。" $ .each(colors_map、function(index、value){ random_words = random_words.replace(new RegExp(index、 'g')、 "フォント色=" "+値+" '> "+インデックス+" "); }); " - 私は理解していませんでした。私はcolorsMapのループをしているのですが、それは私が持っているものです。 –
$の各ハンドラ関数の中で、キーマップの色の各要素のキーと値を取得します。たびに、RegExを使ってテキスト内の「インデックス」をグローバルに(すべてのエントリ)検索しようとします。見つかった場合は、それぞれを同じ「インデックス」に置き換えますが、タグで囲みます。ここで、色はマップの「値」に設定されます。何も見つからなかった場合、イテレータ$はそれぞれ次のマップエントリに移動します。他に何かが分からない場合は教えてください。 –
説明していただきありがとうございます、私は少し変更する必要がありますと信じています。しかし、私は素晴らしい、非常に良い解決策です。あなたは本当にそれが "汚い"と思うので、私はそれをより良くすることができますか? –