我有这个HTML代码,例如:
<div class="new">
<div class="in"></div>
<label>some text now watch this | the-thing</label>
</div>
我想:
我知道如何做第二和第三部分,但我不明白如何操纵字符串开头
提前致谢
答案 0 :(得分:1)
您可以使用正则表达式来获取/替换文本。然后创建一个span元素并将其附加到标签之后。
var str = $( "div.new label" ).html();
var match = str.match( /\|(.*)/ )[1];
$( "div.new label" ).html( str.replace( /\|(.*)/, "" ) );
$( "div.new" ).append( "<span>" + match + "</span>" );
答案 1 :(得分:1)
以下是一个有效的例子:http://jsfiddle.net/jfriend00/TaDKp/。
var re = /\|\s*(.*)$/;
var o = $(".new label");
var match = o.text().match(re);
if (match) {
o.text(o.text().replace(re, ""));
o.after("<span class='special'>" + match[1] + "</span>");
}
描述的步骤:
答案 2 :(得分:0)
你可以这样得到字符串:
var str = $('div.new label').text();
然后使用字符串基元来切割所需字符串的位:)
答案 3 :(得分:0)
您可以使用JavaScript正则表达式捕获并替换特殊字符后的文本。阅读标准的RegExp类。
答案 4 :(得分:0)
要执行第一部分,您需要访问标签的内容。使用jQuery做到这一点。类似的东西:
$(".new > label").val();
答案 5 :(得分:0)
您需要使用indexOf()来查找字符
之后的文本var str = $('.new label').text();
var strToMove = str.substring(str.indexOf('|') + 1);
答案 6 :(得分:0)
我没有时间编写代码,但这可能是你应该如何去做的:
1:在标签上添加ID,例如<label id="originaltext">
2.在您的javascript中,将变量指定给:document.getElementById("originaltext").innerText;
3.使用string.split使用“|”拆分文本字符分为2个变量
4.使用以下内容将原始div的内容设置为管道前的文本:document.getElementById("originaltext").innerText = stringbeforepipe
5.使用相同的方法设置新div的内容,除了使用在分隔符后存储字符串的变量。
答案 7 :(得分:0)
所以你希望最终的html片段是
<div class="new">
<div class="in"></div>
<span>the-thing</span>
<label>some text now watch this</label>
</div>
jquery看起来像这样:
var node = $('label').contains('|').
var txt = node.val();
var newtxt = txt.substr(0, txt.indexOf('|')-1);
var cuttxt = txt.substr(txt.indexOf('|')+);
node.before('<span>'' + cuttxt + '</span>');
node.text(newtxt);
不测试,可能不起作用,YMMV等......