перенос текста в элемент - PullRequest
       5

перенос текста в элемент

1 голос
/ 26 декабря 2011

Я использую плагин jquery jsTree , который создает ссылки в дереве, как этот

<a href="#" class=""><ins class="jstree-icon" style="background: url("images/icon.png") no-repeat scroll center center transparent;">&nbsp;</ins>some long text</a>

Теперь я хочу обернуть текст в промежуток, потому что я хочу использовать плагин jquery ThreeDots . Как я могу сделать это самым простым способом? Элемент ins, конечно, должен находиться за пределами диапазона. Я пытался использовать jquery-функции wrap / wrapInner, но он всегда заключал меня в элемент ins.

Можно ли получить доступ к событию jsTree при создании узлов? Который из них?

Ответы [ 3 ]

1 голос
/ 26 декабря 2011

После того, как ваше древовидное представление будет отображено, вы можете вызвать следующий метод, где '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);
    });
});

После этого вы можете вызвать метод плагина ThreeDots с классом "new"

1 голос
/ 26 декабря 2011
var text = $("a").contents().filter(function() {
  return this.nodeType == 3;
});
$(text).wrap("<span />");

Не знаю ничего о jsTree, поэтому не могу ответить на второй вопрос.

0 голосов
/ 26 декабря 2011

Я придумываю свой собственный ответ

$('#id ul li a').each(function(){
var ins=$(this).find('ins').clone();
$(this).wrapInner('<span></span>').find('ins').remove();
$(this).find('span').before(ins);
});

, но самый простой ИМО - это ответ с фильтром.Итак + 1.

...