使用jQuery跨越不同的元素

时间:2013-06-17 16:12:09

标签: jquery

我希望使用jQuery将这个范围分解为两个不同的ID:

<span id="foo">0.00 (0.00%)</span>

结果看起来像:

<span id="foo1">0.00</span>
<span id="foo2">(0.00%)</span>

任何反馈意见。

4 个答案:

答案 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