是否可以使用jquery根据td单元格中的文本更改按钮?我不想在单元格中有两个不同的按钮。这是jsfiddle中现在的样子。 (抱歉缺少jquery,我不知道如何处理它)
我的mysql表中有三个阶段。列process
从waiting
到processing
到shipped
。
如果显示process
和waiting
,则会显示 btn_cancel 。
<input type="submi" class="btn btn-danger" id="btn_cancel" name="cancel" value="Cancel Order">
如果是shipped
,则会显示 btn_hidden 。
<input type="submit" class="btn btn-danger" id="btn_hidden" name="hidden" value="Hide">
我怎么能实现这个目标?或者,如果这不可能,那么替代方案是什么?
答案 0 :(得分:1)
关于你的问题的评论可能是正确的,但你问如何在jQuery中这样做,所以在这里。
你可以循环遍历每个进程表数据并检查.text(),如果文本===等待然后对按钮执行任何操作。这是基于你的jsFiddle。
$(function(){
$('[data-proccess]').each(function(ind, process){
var content = $(process).text().toLocaleLowerCase();
if(content !== 'waiting'){
$(process).closest('tr').find('[name="cancel"]').hide();
}
});
});
随着说。如果您使用php或其他东西
生成页面,您可能希望在服务器端执行此操作答案 1 :(得分:0)
您可以尝试以下方法。请为#btn_id
使用适当的值$("table tr").each(function(i){
var $tds = $(this).find("td");
var status = $tds.eq(1).text().toLocaleLowerCase();
if(status === 'waiting' || status === 'processing'){
$tds.eq(2).find("#btn_id").attr('value', 'Cancel Order');
}
else if(status === 'shipped'){
$tds.eq(2).find("#btn_id").attr('value', 'Hide');
}
else{
$tds.eq(2).find("#btn_id").attr('value', 'Wait..');
}
});