如何在下面的HTML中使用jquery替换“SUN”和“MOON”替换“Sunday”和“Monday”。
<table>
<tr>
<th>
<div>
<div class="xyz">
<a href="www.google.com"> 20 may <span>Sunday</span></a>
</div>
</div>
</th>
<th>
<div>
<div class="xyz">
<a href="www.google.com"> 21 may <span>Monday</span></a>
</div>
</div>
</th>
</tr>
</table>
答案 0 :(得分:5)
您可以使用:contains
功能。它的作用是找到您要查找的文本并替换为目标文本。演示here。唯一的事情是你必须为你想要替换的每个单词单独执行它。
Html代码
<div class="container"><span>Sunday</span></div>
<div class="container"><span>Monday</span></div>
Jquery代码
$(".container span:contains('Sunday')").html('Sun');//Replace to Sun
$(".container span:contains('Monday')").html('Mon');//Replace to Mon
答案 1 :(得分:1)
尝试this jsfiddle之类的内容。这是执行实际工作的代码:
$(".xyz").each(function() {
var theSpan = $(this).find("span").first();
switch (theSpan.text()) {
case "Sunday":
theSpan.text("SUN");
break;
case "Monday":
theSpan.text("MON");
break;
// include additional case statements
}
});
请注意,此特定方法仅适用于您拥有的确切布局,因为它使用find
调用,然后使用first
仅获取单个span
标记原始div
的结构。
如果您要在span
中提供包含要替换的文字的课程,您将获得更一致的结果,可能不需要find
来电。
作为对此的修改,如果你真正想要的是“每天全名的全封闭缩写”,你可以使用一些字符串操作。您可以使用此代码(also available in this jsfiddle)完成相同的操作,而不是大switch
语句:
$(".xyz").each(function() {
var theSpan = $(this).find("span").first();
theSpan.text(theSpan.text().substr(0,3).toUpperCase());
});
答案 2 :(得分:0)
$(function(){
$(".xyz").each(function(){
var obj=$(this).text($(this).text();
obj.replace('Sunday','Sun'));
obj.replace('Monday','Mon'));
});
});
Did you mean this?
答案 3 :(得分:0)
试试这个
$(".xyz span:contains('Sunday')").text('Sun');
$(".xyz span:contains('Monday')").text('Mon');