将字符串包装在标记中
Wrapping string in tags
我想取一个字符串并将其包装在这样的标签中:
<!-- What I've got: -->
<div class="calendar">Feb 22</div>
<!-- What I want:
<div class="calendar">
<div class="calendarMonth">Feb</div>
<div class="calendarDay">22</div>
</div>
-->
我试着做了一些jQuery,但我有点卡住了:
var calendarText = $(".calendar").html();
var calendarArray = calendarText.split(" ");
var calendarMonth = calendarArray[0];
var calendarDay = calendarArray[1];
/*
Then I tried something like this:
calendarMonth.wrap("div").addClass("calendarMonth");
But I guess calendarMonth is just a string, not an object.
*/
你会怎么做这样的事情?任何想法都将不胜感激。
JSFiddle示例如下:http://jsfiddle.net/timkl/u23wY/
你可以这样做:
$(function(){
var calendarText = $(".calendar").html();
var calendarArray = calendarText.split(" ");
var calendarMonth = calendarArray[0];
var calendarDay = calendarArray[1];
var html = "<div class='"calendarMonth'">"+calendarMonth+"</div>"+
"<div class='"calendarDay'">"+calendarDay+"</div>";
$(".calendar").html(html);
});
更新了你的小提琴:http://jsfiddle.net/u23wY/1/
我不使用jquery,但如果我正确理解你想做什么…
var calendarText = $(".calendar").html();
var calendarArray = calendarText.split(" ");
var calendarMonth = calendarArray[0];
var calendarDay = calendarArray[1];
var calendarDiv = document.getElementsByClassName("calendar")[0];
var calendarMonthDiv = document.createElement("div");
calendarMonthDiv.className = "calendarMonth";
calendarMonthDiv.appendChild(document.createTextNode(calendarMonth));
calendarDiv.appendChild(calendarMonthDiv);
var calendarDayDiv = document.createElement("div");
calendarDayDiv.className = "calendarDay";
calendarDayDiv.appendChild(document.createTextNode(calendarDay));
calendarDiv.appendChild(calendarDayDiv);
http://jsfiddle.net/vPtsK/
var calendarText = $(".calendar").html();
var calendarArray = calendarText.split(" ");
$(".calendar").html("");
$(calendarArray).each(
function(index, item){
$("<div>").html(item).appendTo(".calendar").addClass((index == 0)?"calendarMonth":"calendarDay")
}
);
$(function(){
var a= $('.calendar').html().split(' ');
$('.calendar').html('');
$('.calendar').append($('<div>',{html: a[0], class:'calendarMonth'}));
$('.calendar').append($('<div>',{html: a[1], class:'calendarDay'}));
})
http://jsfiddle.net/6XjVD/
这样的东西会起作用:
$(".calendar").html(function() {
var date = $(this).text().split(' ');
return '<div class="calendarMonth">' + date[0] + '</div>' +
'<div class="calendarDay">' + date[1] + '</div>';
});
http://jsfiddle.net/u23wY/2/
var string = '<div class="calendar">Feb 22</div>';
var elementFromString = getElementFromString(string);
function getElementFromString(string) {
var element;
var elementInfo = new function () {
this.type = getInfoFromString("elementType");
this.attributes = {
className: getInfoFromString("className"),
innerHTML: [
"<" + this.type + " class = 'calendarMonth'>",
getInfoFromString("calendarMonth"),
"</" + this.type + ">",
"<" + this.type + " class = 'calendarDay'>",
getInfoFromString("calendarDay"),
"</" + this.type + ">",
].join(""),
};
};
createElement(elementInfo);
return element;
function getInfoFromString(infoName) {
var info;
var setInfoTo = {
elementType: setInfoToElementType,
className: setInfoToClassName,
calendarMonth: setInfoToCalendarMonth,
calendarDay: setInfoToCalendarDay,
};
setInfoTo[infoName]();
return info;
function setInfoToElementType() {
info = /<('w+)/.exec(string)[1];
}
function setInfoToClassName() {
info = /="('w+)"/.exec(string)[1];
}
function setInfoToCalendarMonth() {
info = /<.*>('w+)/.exec(string)[1];
}
function setInfoToCalendarDay() {
info = /<.*>'w+ ('d+)/.exec(string)[1];
}
}
function createElement() {
element = document.createElement(elementInfo.type);
var attributeName;
var attributeValue;
for (attributeName in elementInfo.attributes) {
attributeValue = elementInfo.attributes[attributeName];
element[attributeName] = attributeValue;
}
}
}
相关文章:
- 用类javascript包装span标记中字符串中的字符索引
- 用Javascript包装HTML字符串中未包装的部分
- 将字符串列表包装在复杂的 HTML 标记中
- Javascript regexp 在 {{}} 之间获取字符串,但不包括那些包装在 中的字符串
- 将拆分字符串的子字符串包装在元素中
- 如何确定搜索字符串是否被较大字符串中的锚标记包装 - javascript 正则表达式
- 提取由某些字符包装的子字符串
- 正则表达式包装的字符串不显示值
- angularjs:在$compile之前用angular.element包装模板字符串
- 检测字符串中的“模式”并将其包装在javascript(angular)中标签
- 比较 IMG SRC + A 包装 URL 字符串,看看它们是否“相似”
- 找到字符串出现并用跨度包装它
- 当通过jQuery插入DOM时,什么时候应该将HTML字符串包装在单个元素中
- 将字符串包装在标记中
- JavaScript:如何用包含唯一id的span标记将字符串中的每个单词包装起来
- Regex将JSON属性值包装在另一个字符串中.MongoDB转换
- 如何在JavaScript中将字符串值包装在变量中
- 拆分字符串并将子字符串包装在mathml标记中
- Regex将电子邮件地址从字符串包装为mailto
- Chrome没有't获取选定的html字符串包装标记(contenteditable)