我有大约十几个事件要检查,并且所有选择器的名称都类似(迭代地)。我怎样才能缩短这个程序?
$(document).ready(function() {
$(document).on('click','#del_od1', function() {
$('#change_od1').val('YES');
$('#span_od1').html('(Deleted)');
$('#status_od1').val('DELETED');
});
$(document).on('click','#del_od2', function() {
$('#change_od2').val('YES');
$('#span_od2').html('(Deleted)');
$('#status_od2').val('DELETED');
});
$(document).on('click','#del_od3', function() {
$('#change_od3').val('YES');
$('#span_od3').html('(Deleted)');
$('#status_od3').val('DELETED');
});
});
这个问题名字不好。有人还可以建议一个更准确的标题,我会在接受答案之前将其更改为该标题。
编辑:
响应 ajax 调用会回显整个表结构。表的顶部是这样的:
$r = '
<table id="DocTable">
<tr>
<th width="170">Document Title</th>
<th width="170">MetShare FN</th>
<th width="50">Action</th>
<th width="50">Delete</th>
</tr>';
随后是几行不相关的行,其中包含呼叫中请求的信息。然后将其附加到前一个位,整个内容回显为echo $r;
.
$rest_docs = $aProj['all_project_docs'];
$ocnt = 0;
if ($rest_docs !== ''){
$ocnt = $ocnt + 1;
$aRest_docs = explode('?',$rest_docs);
foreach($aRest_docs as $doc){
$aDoc_parts = explode('|',$doc);
$r = $r . '
<tr>
<td>'.$aDoc_parts[0].'</td>
<td>
<span id="span_od' . $ocnt . '">
<a href="'.$aDoc_parts[1].'" target="blank">
'. $aDoc_parts[1] .'
</a>
</span>
<input type="hidden" id="status_od' . $ocnt . '" name="status_od' . $ocnt . '">
</td>
<td>
<a id="change_od' . $ocnt . '" class="normal" href="#">change</a>
<input type="file" id="if_od' . $ocnt . '" name="if_od' . $ocnt . '" style="display:none">
<input type="text" style="display:none">
</td>
<td>
<a href="#" id="del_od' . $ocnt . '">delete</a>
</td>
</tr>';
}
}
echo $r;