如何使用jQuery在文本节点周围包装HTML?

时间:2012-04-04 06:14:38

标签: jquery

<div class="pagination">
  <a href="#">1</a>
  <a href="#">2</a>
  3
  <a href="#">4</a>
</div>

我需要使用jQuery围绕数字“3”包装HTML元素。我无法修改HTML,因为它是动态生成的。

3 个答案:

答案 0 :(得分:12)

我有一个similar question包裹所有流浪文本

$(function() {

    var test = $('.pagination')
        .contents()
        .filter(function() {
            return this.nodeType === 3 && $.trim(this.nodeValue) !== '';
        })
        .wrap('<span/>');

});​

wrap()wrapAll()轻微混淆。 here's a demo

答案 1 :(得分:5)

这将用span填充你的所有数字,所以结构将是:

<a><span>1</span></a>

并且所选择的仅跨越而不是:

<span>2</span>


var html = $('.pagination').html();
    html = html.replace(/[0-9]/g,"<span>$&</span>");
    $('.pagination').html(html);

所以你可以轻松地设置它的样式:

.pagination a span {normal style} 
.pagination span{selected style}

答案 2 :(得分:1)

这是旧的,但在我看来,更简单,更简单的方法是:

class Program
{
    private static Alert MainAlert = new Alert();
    private static PrimaryDBContext db = new PrimaryDBContext();

    static void Main(string[] args)
    {
        MainAlert = AlertObjectFactory.GetAlertObject();            
        db.Alerts.Add(MainAlert);
        db.SaveChanges();
    }
}