javascript - 将元素中包含的内容与数组一起添加

标签 javascript jquery html arrays

我正在尝试添加每个 span 的内容以及 title 属性中的值。

<div id="group-wrap" class="group">
    <span class="lbracket" title="&f">(</span>
    <span class="grouptitle" title="&f"> Group </span>
    <span class="rbracket" title="&f">) </span>
    <span class="username" title="&f"> Username </span>
    <span class="col" title="&f">:</span>
    <span class="text" title="&f"> Helo There! </span>
</div>

这是我目前所拥有的:

var str = [];
    $('#group-wrap span').each(function(){
        str.push($(this).attr('title'));
    });
    alert(str.join(''));
});

http://jsfiddle.net/B9QeK/3/

输出是 &f&f&f&f&f(每个 title 属性的值),但预期输出具有值,加上范围内的内容。属性的值应该附加在内容之前。

&f(&fGroup&f)&fUsername: &f text

我怎样才能得到这个结果?

最佳答案

看起来你在找

str.push( this.getAttribute('title'), this.textContent || this.text );

至于性能方面的原因,您不应该为每次迭代都重新创建一个 jQuery 对象。更好的是,根本不要使用 jQuery 来接收这些值。

JSFiddle

顺便说一句,您可以使用 jQuerys .map() 来更优雅地完成它:

jQuery(function($){
    var str = $('#group-wrap span').map(function(){
        return this.getAttribute('title') + this.textContent || this.text;
    }).get();

    alert(str.join(''));
});

JSFiddle

引用:.map()

关于javascript - 将元素中包含的内容与数组一起添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9175361/

相关文章:

javascript - 为什么 innerHTML 不能使用空格?

javascript - 尝试在 Three.js 中为立方体着色

javascript - 这个javascript和php代码有什么问题吗?

javascript - 仅在选择时,我才能从单击时从多选择中取消选择选项

html - 对齐图像链接旁边的文本链接

javascript - 自定义推文按钮不发送文本

jQuery 替换部分字符串

javascript - 如何向 JqGrid 顶级工具栏按钮添加自定义图标?

html - 使用 scroll-snap-type 在 Chrome 上双滚动网站

html - 如何将 HTML 模板包含到所选文档中