我希望使用jQuery将这个范围分解为两个不同的ID:
<span id="foo">0.00 (0.00%)</span>
结果看起来像:
<span id="foo1">0.00</span>
<span id="foo2">(0.00%)</span>
任何反馈意见。
答案 0 :(得分:3)
这应该有效:
// obtain text and break it at the space
var t = $('#foo').text().split(' ');
// rename 'foo' and set its content
$('#foo').attr('id', 'foo1').text(t[0]);
// create new element and put it after foo
$('<span>', {id: 'foo2', text: t[1]}).insertAfter('#foo1');
答案 1 :(得分:2)
将文本内容拆分为数组,为每个数组元素创建新节点,然后用新创建的元素替换当前标记:
$('#foo').replaceWith(function() {
var $this = $(this);
return $.map($this.text().split(' '), function(o, i) {
return $('<span>', {
id: $this.prop('id') + (i + 1),
text: o
}).get(0);
});
});
当然,对于手边的实际问题,它可能有点过于通用:)
答案 2 :(得分:0)
var $foo = $('#foo');
var v = $foo.text().split(' ');
$foo.after($('<span id="foo2"></span>').text(v[1]));
$foo.after($('<span id="foo1"></span>').text(v[0]));
演示---->
http://jsfiddle.net/ByFbK/3/
答案 3 :(得分:0)
var orig = $('#foo').text().split(' '),str='';
$(orig).each(function (idx, elem) {
str += '<span id="foo' + (idx + 1) + '">' + elem + '</span>';
});
$('#foo').replaceWith(str);
<强> jsFiddle example 强>