使用 JQuery 更改下一个 <td> 文本
Posted
技术标签:
【中文标题】使用 JQuery 更改下一个 <td> 文本【英文标题】:Change next <td> text with JQuery 【发布时间】:2012-07-26 23:34:59 【问题描述】:我有像这样的网格行方案:
<tr>
<td>110</td>
<td><input class="client-chb" name="checkedRecords" type="checkbox" value="110" title="checkedRecords"></td>
<td>Some name</td>
<td>Some other name</td>
<td>1.1.2012</td>
</tr>
我有一个功能,我可以获取所有选中的复选框,获取它们的值并通过 ajax 发送到服务器。
但我想在发布 ajax 帖子之前获得 3 和 4 <td>
并更改文本样式,例如:
<td><b>Some name</b></td>
我需要这个,反之亦然。或者更清楚地说,这是“标记为已读”和“标记为未读”的消息收件箱。
function MarkAsUnread()
var idata = new Array();
$(".client-chb:checked").each(function()
var test = $(this);
// maybe here, test -> find next td -> change text
idata.push($(this).val());
);
//other logic
【问题讨论】:
【参考方案1】:您可以尝试以下方法:
function MarkAsUnread()
var idata = new Array();
$(".client-chb:checked").each(function()
$(this).closest('tr').find('td').slice(2, 4).wrapInner('<b/>')
idata.push($(this).val());
);
【讨论】:
我认为这可以简化为$("tr td").slice(2, 4).wrap("<b>");
。
@pimvdb wrap()
将包装TD
s 而不是他们的文本?我错了吗?
是的,对不起,我的意思是.wrapInner
。
我添加了一些类,所以我像 $(this).closest('tr').find('td.ch-bold1').wrapInner('');
【参考方案2】:
您已经遍历了 TD 中包装的输入元素,所以首先您要设置输入元素的父元素(复选框)并执行下一步..
喜欢,
function MarkAsUnread()
var idata = new Array();
$(".client-chb:checked").each(function()
var test = $(this).parent();
var next1 = test.next();
var next2 = test.next().next();
idata.push(next1.val());
idata.push(next2.val());
);
//other logic
要获取或设置下一个和下一个 TD 的内容,请使用 next1.val() 和 next2.val()
【讨论】:
"UPDATING the revious comment...." 不是答案。如果您更新了某些内容,请让人们看到,直到您真正更新它。以上是关于使用 JQuery 更改下一个 <td> 文本的主要内容,如果未能解决你的问题,请参考以下文章
检测 <td> 的内部 html 何时随 javascript 或 jquery 更改