jQuery将博客日期头的连字符替换为span
jQuery replace hyphens with spans for blogger date header
我希望在博客中使用jQuery自定义默认日期标题。
原始输出为:
<h2 class='date-header'>2011-01-20</h2>
我想把YYYY、MM和DD包装在span中,这样我就可以把它们作为子节点来操作。
结果将是:
<h2 class='date-header'><span class="dhy">2011</span><span class="dhm">01</span><span class="dhd">20</span></h2>
我的每次尝试都添加了额外的标签,所以它是一个嵌套的混乱。
谁有好的解决方案?
这是一个很好的功能性解决方案:
$('.date-header').html(function() {
var txt = $(this).text();
var classes = ['dhy', 'dhm', 'dhd'];
$(this).html($.map(txt.split(/-/), function(val) {
return $('<span/>', {'class': classes.shift()}).text(val)[0];
}));
});
http://jsfiddle.net/ThiefMaster/WdRAw/如果它总是具有相同的YYYY-MM-DD格式,那么您可以使用分割来获取元素,循环遍历它们,创建输出HTML,然后将其添加为h2的HTML。
$(function()
{
$(".date-header").each(function()
{
var arrDate = $(this).text().split("-");
var strOut = '<span class="dhy">'+arrDate[0]+'</span>-';
strOut+= '<span class="dhm">'+arrDate[1]+'</span>-';
strOut+= '<span class="dhd">'+arrDate[2]+'</span>';
$(this).html(strOut);
});
});
和小提琴:http://jsfiddle.net/ahallicks/xGa2J/2/
我想这个应该可以了:
var header = $('.date-header');
var d = header.text().split('-');
header.html('<span class="dhy">' + d[0] + '</span><span class="dhm">' + d[1] + '</span><span class="dhd">' + d[2] + '</span>');
相关文章:
- 如何将单词(包括单词)与连字符匹配
- 删除图形和数字之间的连字符(-)符号
- JQuery根据连字符前的首字母对列表进行排序
- 如何替换javascript字符串中的前三个连字符
- 带有连字符的 Jquery 表排序器编号
- 无效字符替换时出错
- Javascript将所有文本框值更改为连字符
- 在JavaScript中,如何用一个字符替换字符串中的所有字母
- regex中连字符的这种用法有效吗
- 不能将 UTF-8 字符替换为正则表达式
- 使用连字符引用对象的属性名称
- 用连字符分隔匹配值
- 跳过用户输入的文本字符串中的特殊字符,并在 Javascript 中的每个单词后添加连字符
- 如何仅替换第一个数字(用连字符分隔)
- 用连字符替换字符串中的空格
- 将空格和空格替换为逗号,并在 JS 中使用连字符
- jQuery将博客日期头的连字符替换为span
- 将多个连续的连字符替换为一个
- 将Dojo NumberTextBox分隔符逗号替换为连字符
- Javascript替换:不要在连字符(正则表达式)上拆分单词