这是工作代码
$('td.transaction_partner_name_td4').css('border-bottom', '1px solid #FF0000');
它会更改此html
<td class='transaction_partner_name_td4'></td>
但我需要像这样使用html
<td class='transaction_partner_name_td<?php echo $row_number;?>'>
<input type='text' name='transaction_partner_name[]' id='transaction_partner_name<?php echo $row_number;?>'>
</td>
$row_number
可能是1,2 ...... 30.因此transaction_partner_name_td
可能是transaction_partner_name_td1,2...30
在ajax
更改function(data, success)
之后<td class='transaction_partner_name_td<?php echo $row_number;?>'>
需要td
json
data
值例如:
data[0]
值为1
data[1]
值为3
data[2]
值为4
我可以像这样更改/设置input
值:
<?php while ( $counter < ($counter_maximum) ){ ?>
$('#transaction_partner_name<?php echo $counter;?>').val(data[<?php echo $counter;?>]);
<?php $counter++; } ?>
尝试更改/设置边框颜色的方法相同。
尝试
<?php while ( $counter < ($counter_maximum) ){ ?>
$('td.transaction_partner_name_td(data[<?php echo $counter;?>])').css('border-bottom', '1px solid #FF0000');
<?php $counter++; } ?>
但这不起作用。使用View源,请参见此$('td.transaction_partner_name_td(data[1])').css('border-bottom', '1px solid #FF0000');
是否可以将json
data[0]
添加到td.transaction_partner_name_td
?或者可能是其他解决方案?
解决方案
感谢T.J.目前Crowder的建议可以使用这个代码(可能后者会遇到一些问题,但目前仍然有效):
<?php while ( $counter < ($counter_maximum) ){ ?>
$("#transaction_partner_name" + data[<?php echo $counter;?>]).closest("td.transaction_partner_name_td").css('border-bottom', '1px solid #FF0000');
<?php $counter++; } ?>
答案 0 :(得分:2)
我认为可能有更好的方法来完全接近这个结构,但 minimal 改变你所拥有的那些允许你定位这些单元格的是:
HTML (请注意,课程中不再有行ID):
<td class='transaction_partner_name_td'>
<input type='text'
name='transaction_partner_name[]'
id='transaction_partner_name<?php echo $row_number;?>'>
</td>
JavaScript的:
// Access *all* of them
var allTransationPartnerCells = $("td.vtransaction_partner_name_td");
// Or access the one for a specific row
var justOneCell = $("#transaction_partner_name" + someRowNumber)
.closest("td.transaction_partner_name_td");
或者在最后一个,你可能甚至不需要这个课程:
// Access the one for a specific row
var justOneCell = $("#transaction_partner_name" + someRowNumber)
.closest("td");
答案 1 :(得分:1)
如果data
是行号的数组,您可以过滤输入并选择其父td
元素:
$('input[name="transaction_partner_name[]"]').filter(function() {
// Check existence of the numbers
var n = + this.id.replace('transaction_partner_name', '');
return $.inArray(n, data) > -1;
}).parent('td')
.addClass('borderBottom');
您还可以向data-*
元素添加td
属性,而不是创建动态类,然后您可以使用jQuery .data()
方法选择和过滤它们:
<td class='transaction_partner_name_td' data-id="<?php echo $row_number;?>">
$('td.transaction_partner_name_td').filter(function() {
return $.inArray( $(this).data('id'), an_id_array ) > -1;
}).addClass('borderBottom');