【问题标题】:concatenate string from divs with the same class连接来自具有相同类的 div 的字符串
【发布时间】:2015-08-15 01:51:06
【问题描述】:

我有以下代码。

function sendData(){
console.log($(".MultiFile-title").text())
}

多个标题的结果是:

file1.txtfile2.txtfile3.txt

我需要的是输出

file1.txt、file2.txt、file3.txt

我相信 FOR EACH 循环在这里是最好的,但我将如何编写它以从每个具有类名“MiltiFile-title”的 div 中获取文本有什么帮助?

【问题讨论】:

    标签: javascript html loops for-loop each


    【解决方案1】:

    你可以试试:

    function sendData(){
        var result = [];
        $('.MultiFile-title').each(function () {
            result.push($(this).text());
        });
    
        result = result.join(', ');
    
        console.log(result);
    }
    

    这会创建一个临时数组并遍历页面上的所有 ".MultiFile-title"s,将每个项目 text 推送到数组中。

    循环完成后,它会将字符串joins 使用字符串", " 作为粘合在一起。

    【讨论】:

    • 你太棒了。那是准确的。谢谢!
    • 您可以使用.map() -> $('.MultiFile-title').map(function() { return $(this).text(); }).get().join(", ")来简化您的脚本
    • 这是一种“简化”,还是只是将代码压缩成一条线?有时这不是最好的方法 - 特别是在尝试向初学者阐明示例时。
    • 您不能在 cmets 中使用换行符 - 这是“单线”的唯一原因 ;) 关于 .map() 绝对没有任何谜团。
    • 嗯,地图功能也非常有用(刚刚在 jQuery API 中查看过)。到目前为止我从未听说过它,但将来会实施它。也谢谢你。我将接受 .each() 解决方案作为主要答案。谢谢你们。
    【解决方案2】:

    你可以试试:

    jQuery(".MultiFile-title").map(function(i, v){return jQuery(v).text().trim()});
    

    【讨论】:

      猜你喜欢
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      相关资源
      最近更新 更多