0

我正在尝试稍微优化我的代码,并想知道这里是否有人可以帮我一把。

在我解释我的问题之前,让我为您提供我的 html 和 js/jquery 代码,供您欣赏!

HTML:

<tr>
<td>
    <input email="a@a.com" value="4560" type="checkbox" id="task_checked">
</td>
<td>a@a.com</td>
</tr>
<tr>
<td>
    <div>
        <span>E-Mail: </span><input id="4560" type="text" name="added_email" class="added_email">
        <span>Enter Book Name: </span><input id="4560" type="text" class="category"> 
    </div>
</td>
</tr>

<tr>
<td>
    <input email="b@b.com" value="6012" type="checkbox" id="task_checked">
</td>
<td>b@b.com</td>
</tr>
<tr>
<td>
    <div>
        <span>E-Mail: </span><input id="6012" type="text" name="added_email" class="added_email">
        <span>Enter Book Name: </span><input id="6012" type="text" class="category"> 
    </div>
</td>
</tr>

<tr>
<td>
    <input email="c@c.com" value="5604" type="checkbox" id="task_checked">
</td>
<td>c@c.com</td>
</tr>
<tr>
<td>
    <div>
        <span>E-Mail: </span><input id="5604" type="text" name="added_email" class="added_email">
        <span>Enter Book Name: </span><input id="5604" type="text" class="category"> 
    </div>
</td>
</tr>

希望这没有吓到你!

这是我的jQuery。

var newTasksArr = {};
 $("#task_checked:checked").each(function() {
var email = $(this).attr("email");
var id = $(this).val();
newTasksArr[id] = email;
});


var AddedEmailsArr = [];

var inputs = $('input.added_email'), tmp;
$.each(inputs, function(i, obj) {
tmp = {
    'Task_ID': $(obj).attr('id'),
    'email': $(obj).val(),
    'category' : $(obj).siblings('.category').val(),
};

AddedEmailsArr.push(tmp);
});

如您所见,目前我有两个 Jquery 函数,我正试图将它们合二为一。

让我向你们展示输出的样子。

//output for var newTasksArr = {};
Object { 4560="a@a.com", 6012="b@b.com", 5604="c@c.com" }

//output for var AddedEmailsArr= {};
[ 
Object { Task_ID="4560",  email="f@f.com.com",  category="example1" }, 
Object { Task_ID="6012",  email="g@g.com.com", category="example2" }, 
Object { Task_ID="5604",  email="z@z.com", category="example2" }
]

为了优化我的代码,我想摆脱这两个对象并变成一个对象。

下面是我想要的样子。

[ 
Object { Task_ID="4560",  email="f@f.com.com",  category="example1" }, 
Object { Task_ID="6012",  email="g@g.com.com", category="example2" }, 
Object { Task_ID="5604",  email="z@z.com", category="example2" }, 
Object { Task_ID="4560",  email="a@a.com" }, 
Object { Task_ID="6012",  email="b@b.com" },
Object { Task_ID="5604",  email="c@c.com" } 
]

希望我的问题是有道理的,我真的很感谢你们对这个问题的任何帮助。请随时向我寻求任何澄清。

谢谢你。

4

1 回答 1

0

我没有时间完全了解所有细节。但我认为你可能需要退后一步,重新考虑这种方法。ID 应该是唯一的,您可以考虑使用“数据”属性而不是创建自己的属性。看起来你的思维过程是正确的,但不是坚实的基础。

于 2013-03-08T16:58:07.030 回答