javascript - 使用来自不同 HTML 属性的项目填充数组

标签 javascript jquery html arrays

我有大约 1000 个具有相同类名和自定义属性的图像和文本区域。类名分别是 emoticon 和 emoticonlist。自定义属性分别是 emo-tag 和 emo-as​​cii。

每张图片都有其合作伙伴(文本区域),其自定义属性中的内容完全相同。

示例:

emo-tag   = "f-x" // for images
emo-ascii = "f-x" // for textareas

其中 x 代表 0 到 999 之间的数字。

我的脚本毫无问题地捕获了图像属性和我需要的东西。当我尝试获取具有与图像一样的确切属性内容的文本区域的值时,问题就开始了。

这是我的代码:

$(function(){
var json = [];

$('img').each(function(){
    var emoimg  = $(this).attr("src");
    var emoalt  = $(this).attr("alt");
    var emotag  = $(this).attr("emo-tag");

    //Does not this supposed to capture the value of this specific textarea?
    var emoascii= $('.emoticonlist').attr("emo-ascii",emotag).val();

        json.push({
            id : emotag,
            name : emoalt,
            img : emoimg,
            content: emoascii       
        });

});
  var s = JSON.stringify(json);
  $("#content").after("<div>" + s + "</div>");
});

正如我所说,代码有效,但捕获并插入数组的文本区域只是数组的第一个和所有项目。我怎样才能完成我想要的?

当前输出:

[
{"id":"emo-0","name":"Smiley Face","img":"images/smiley-face.png","content":":)"},
{"id":"emo-1","name":"Big smile","img":"images/big-smile.png","content":":)"},
{"id":"emo-2","name":"Sad face","img":"images/sad-face.png","content":":)"},
...
...
...
]

期望的输出:

[
{"id":"emo-0","name":"Smiley Face","img":"images/smiley-face.png","content":":)"},
{"id":"emo-1","name":"Big smile","img":"images/big-smile.png","content":":D"},
{"id":"emo-2","name":"Sad face","img":"images/sad-face.png","content":":("},
...
...
...
]

最佳答案

使用 $('.emoticonlist').attr("emo-as​​cii",emotag),您设置属性而不是获取属性等于 的元素表情符号.( http://api.jquery.com/attr/ )

也许尝试更换线路

var emoascii= $('.emoticonlist').attr("emo-ascii",emotag).val();

var emoascii= $('.emoticonlist[emo-ascii=' + emotag +']').val();

( https://api.jquery.com/attribute-equals-selector/ )

关于javascript - 使用来自不同 HTML 属性的项目填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34324517/

相关文章:

javascript - 在 node.js 中捕获需要模块的错误

javascript - 如何将数字集中在禁用的输入类型 ="time"元素上?

html - 如何在同一行显示 2 个 div,同时在最后一个 div 中保持水平滚动?

javascript - 将缩小的 JavaScript 代码导入 HTML 文件,无需粘贴

javascript - YouTube Player API无法完全加载?

javascript - React 组件内部函数的条件渲染不起作用

javascript - 使用 chagePage 手动传递额外值

javascript - Yii,将下拉列表值复制到隐藏的下拉列表

c# - 需要使用 jQuery getJSON 的工作示例

html - stringByReplacingOccurrencesOfString 无法正常运行