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

我有大约1000个图像和textareas具有相同的类名和自定义属性.类名分别是表情符号和表情符号列表.自定义属性分别是emo-tag和emo-as​​cii.

每个图像都有其合作伙伴(te​​xtarea),其自定义属性中的内容完全相同.

例:

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

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

我的脚本捕获图像属性和我需要的没有问题.当我尝试获取具有与图像一样的确切属性内容的textarea的值时,问题就开始了.

这是我的代码:

$(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("

就像我说的那样,代码可以工作但是捕获并推入数组的textarea只是第一个和数组的所有项目.我怎样才能完成我想要的?

电流输出:

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

期望的输出:

[
{"id":"emo-0","content":":D"},"content":":("},...
...
...
]
最佳答案
使用$(‘.emoticonlist’).attr(“emo-as​​cii”,emotag),你要设置属性而不是获取属性等于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/)

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...