【问题标题】:Select a Tag with a Selector from a Text Variable using jQuery使用 jQuery 从文本变量中选择带有选择器的标签
【发布时间】:2009-10-12 21:33:09
【问题描述】:

我有一个字符串,其中包含文本和一些<a> 标签;我想知道如何从变量中选择一个标签并循环它。我尝试了以下方法,但没有成功:

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

$('a', text).each(function() {

            var string = $(this).html();
            $(this).html(string.substring(0, length-1)+(string.length > length ? end : ''));

        });

【问题讨论】:

    标签: javascript jquery selector


    【解决方案1】:

    您需要将文本包装在 div(或其他元素)中,然后 find() it:

    var text = 'some string here with <a href="#link">http:something.com</a> more string and more links also';
    
    text = $('<div>' + text + '</div>');
    
    text.find('a').each(function() {
        var length = 10;
        var end = '...';
    
        var string = $(this).html();
        $(this).html(string.substring(0, length) + (string.length > length ? end : ''));
    });
    
    var text = text.html();
    
    // Put it into a textarea
    $('#myTextarea').val(text);
    

    【讨论】:

    • greg 感谢您的回答及其工作,但只剩下一个问题是.. 我如何更改文本 init 并将其分配回与以前相同的位置?
    • 如果你定义了长度和结束,你拥有的代码几乎可以工作。你只需要在运行后获取text.html()
    • 不,text.html() 不起作用,当我运行这个 text.html() 时,我的行循环结束,它不会再运行 javascript,也不会在 firebug 中显示任何错误。
    • 已解决:(当然还有 greg Tips (: ) stackoverflow.com/questions/1553784/…
    【解决方案2】:

    替换

    $('a', text).each(function() {
    

    $(text, 'a').each(function() {
    

    看看它是否有效。

    【讨论】:

    • 您的选择器也有效,但它在 $(this).html('adding new value');顺便说一句,您知道如何在更改文本变量后将相同的值放入文本变量中吗?
    猜你喜欢
    • 2016-11-15
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    相关资源
    最近更新 更多