Jquery 从属性创建数组;将它们添加到页面中

Jquery 从属性创建数组;将它们添加到页面中,jquery,arrays,each,Jquery,Arrays,Each,我有一个问题一直在绞尽脑汁,因为我对编程相当缺乏经验。我是一个拥有图片库的网站的成员。当您查看包含图库列表的页面时,每个图库下面都有图标内的标签 <div class="id4"> <a href="..."><img src="..."></a> <div class="id44"> <div class="tft" title="tag1, tag2"></div>

我有一个问题一直在绞尽脑汁,因为我对编程相当缺乏经验。我是一个拥有图片库的网站的成员。当您查看包含图库列表的页面时,每个图库下面都有图标内的标签

<div class="id4">
    <a href="..."><img src="..."></a>
    <div class="id44">
        <div class="tft" title="tag1, tag2"></div>
        <div class="tft" title="tag3"></div>
    </div>
    <div class="tags"></div>
</div>
<div class="id4">
    <a href="..."><img src="..."></a>
    <div class="id44">
        <div class="tft" title="tag1"></div>
        <div class="tft" title="tag2"></div>
    </div>
    <div class="tags"></div>
</div>

由于将鼠标悬停在每个图标上是一件非常麻烦的事情,所以我想编写一个自定义脚本,在它们所属的库下面的“title”属性中写入标记。这是我所能做到的:

$(".id44").after('<div class="tags"></div>');
$(".id44").each(function() {
    var array = [];
    $(".tft").each(function() {
        var tags = $(this).attr("title");
        array.push(tags);
    });
    console.log(array);
});
(“”)之后的“.id44”); $(“.id44”)。每个(函数(){ var数组=[]; $(“.tft”)。每个(函数(){ var tags=$(this.attr(“title”); array.push(标签); }); console.log(数组); });
它所做的只是将页面上每个标签的巨大列表打印到控制台,打印次数与库的次数相同。

查找作为当前元素后代的
.tft
元素:

$(this).find(".tft").each(function() {
    array.push(this.title);
});
$(“.tft”)
单独匹配具有
tft
类的所有元素

我会这样写整件事:

$('.id44').each(function() {
    var tags = $(this).find('.tft').map(function() {
        return this.title;
    }).get();

    $('<div>', {
        'class': 'tags',
        'text': tags.join(', ')
    }).insertAfter(this);
});
$('.id44')。每个(函数(){
var tags=$(this.find('.tft').map(function()){
返回此.title;
}).get();
$('', {
“类”:“标记”,
“文本”:标记.连接(',')
}).在(本)之后插入;
});

.map(…).get()
只是一种较短的编写代码的方法,用于生成所有标记的数组。

问题在于
.tft
不限于当前的
.id44
循环。使用
“选择器”,此
将结果限制在
容器中。此外,我还添加了如何在右侧
.tag div
中添加标记

$(".id44").after('<div class="tags"></div>');
$(".id44").each(function() {
    var array = [];
    $(".tft", this).each(function() {
        var tags = $(this).attr("title");
        array.push(tags);
    });
    $(".tags", this).html(array.join(','));
});
(“”)之后的“.id44”); $(“.id44”)。每个(函数(){ var数组=[]; $(“.tft”,this).each(函数(){ var tags=$(this.attr(“title”); array.push(标签); }); $(“.tags”,this.html(array.join(','); });
我不知道“选择器”,这是可能的,谢谢。这很有帮助。这个功能非常好,谢谢。我还有一个关于标签的小问题。其中一些已附加名称空间(例如:“namespaceX:tag1”“namespaceY:tag2”)如何从输出中删除这些名称空间?@user1689634:只需执行
this.title.split(“:”).slice(-1)