jquery .each loop and replace to same location?

2019-09-12 15:20发布

i got help (Select a Tag with a Selector from a Text Variable using jQuery) on looping the static var and replacing it value, but just one question is left from it, is how can i replace finded tags with newly changed tags in the text area

Code:

var length = 30;
var end    = '...';
var text = `some string here with <a href="#link">http:something.com</a> more string and more links also`;

$('<div>' + text + '</div>').find('a').each(function() {

                var link_value = $(this).html();
        $(this).html(link_value.substring(0, length-1)+(link_value.length > length ? end : ''));
// now how can i put $(this).html() back in the text area, which it was found at?

        });

2条回答
家丑人穷心不美
2楼-- · 2019-09-12 15:57

Actually when changing this one way or the other, the changes are made and you don't need to put it back instead just use end()

var div = $('<div>' + text + '</div>').find('a').each(function() {...}).end();
查看更多
别忘想泡老子
3楼-- · 2019-09-12 16:04
    var length = 30;
    var end    = '...';
    var div = $('<div>' + text + '</div>');
    $(div).find('a').each(function() {
        var link_value = $(this).html();
        $(this).html(link_value.substring(0, length)+(link_value.length > length ? end : ''));
    });

    var text = div.html();
查看更多
登录 后发表回答