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);
});

ご覧のとおり、現在、2 つの Jquery 関数を 1 つにしようとしています。

出力がどのように見えるかをお見せしましょう。

//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" }
]

コードを最適化するために、2 つのオブジェクトを削除して 1 つのオブジェクトにしたいと考えています。

以下は、私がそれをどのように見せたいかです。

[ 
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 に答える