我正在使用jsTree jquery插件,它会在树中生成链接
<a href="#" class=""><ins class="jstree-icon" style="background: url("images/icon.png") no-repeat scroll center center transparent;"> </ins>some long text</a>
现在我想将文本包装在一个span中,因为我想使用ThreeDots jquery插件。我怎样才能以最简单的方式做到这一点? ins元素当然必须超出范围。我试图使用wrap / wrapInner jquery函数,但它总是包装我的ins元素。
当节点创建时,是否可以访问jsTree事件?哪一个?
答案 0 :(得分:1)
var text = $("a").contents().filter(function() {
return this.nodeType == 3;
});
$(text).wrap("<span />");
对jsTree一无所知,所以无法回答第二个问题。
答案 1 :(得分:1)
渲染树视图后,您可以调用以下方法,其中'test'将是您锚点的类名。
$(function() {
$('a.test').each(function() {
var ins = $(this).find('ins');
var span = $('<span class="new" />');
span.text($(this).text());
$(this).html('');
$(this).append(ins);
$(this).append(span);
});
});
在此之后,您可以使用“new”类
调用ThreeDots插件方法答案 2 :(得分:0)
我想出了自己的答案
$('#id ul li a').each(function(){
var ins=$(this).find('ins').clone();
$(this).wrapInner('<span></span>').find('ins').remove();
$(this).find('span').before(ins);
});
但最简单的imo就是过滤器的答案。所以+1。