ユーザーがテーブルに行を追加できるページがあります。1) 3 つの入力フィールドにテキストを追加し、2) ボタンをクリックします。
テーブルに行を追加する前に、同じレコードがまだないことを確認したい....
レコードを追加するためのコードは次のとおりです。
$("#add_to_table").click(function() {
var contact_type=$("#contact_types option:selected").val();
var call_order = $('#call_order').val();
var contact_details = $('#contact_details').val();
// add new logic here
var rules_count = $('#rule_summary tbody tr').length - 1; //minus one for the
rules_count = rules_count + 1;
var htmlstring = '<tr id="rule_' + rules_count + '">'
htmlstring = htmlstring + '<td><input type="button" value="Remove" class="removeruleset"/></td>'
htmlstring = htmlstring + '<td>' + contact_type + '</td>'
htmlstring = htmlstring + '<td id=' + contact_details + '-' + rules_count + '>' + contact_details + '</td>'
htmlstring = htmlstring + '<td>' + call_order + '</td>'
htmlstring = htmlstring + '</tr>'
htmlstring = htmlstring + '<tr><input type="hidden" name="contact_type"' + rules_count + ' value=' + contact_type + '/></tr>'
htmlstring = htmlstring + '<tr><input type="hidden" name="contact_details"' + rules_count + ' value=' + contact_details + '/></tr>'
htmlstring = htmlstring + '<tr><input type="hidden" name="contact_details"' + rules_count + ' value=' + call_order + '/></tr>'
$('#rule_summary tr:last').after(htmlstring);
});
このコードは機能していますが、改善する方法があると確信しています。私はまだ jQuery と Javascript に慣れていません。
コードを変更するためにこれまでに思いついたのは次のとおりです: (「ここに新しいロジックを追加する」というコメントがある場所にこれを挿入します。
var cell;
var result = $('#rule_summary tr').find('td:contains('+contact_details+')');
result.siblings().css('背景色', '赤');
基本的に、行の最初のセルと最後のセルが、入力フィールドから取得した値と一致するかどうかを確認する必要があります。隣接するセルを色分けすることで、コードが正しいセルを見つけていることを確認しました。各兄弟の値を抽出する方法を知る必要があるだけです...一度に1つずつ。
編集1
また、テーブルのフィールドにクラスを追加し、クラス名で兄弟を選択しようとしました:
var cell;
var result = $('#rule_summary tr').find('td:contains('+contact_details+')');
result.siblings().css('background-color', 'red');
alert(result.siblings('td.call_order').val());
しかし、アラートは何も返されません。