添加 css 到动态添加的表格行
Add css to a dynamic added Tablerow
我正在使用 jquery 移动设备创建一个网站,在那个网站上我得到了一个 table,看起来像这样:
FIDDLE
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css">
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<table data-role="table" class="ui-responsive ui-shadow gk-decorate" id="testTable" is="jqm-table">
<thead>
<tr>
<th data-priority="1">Animal</th>
<th data-priority="1">Sports</th>
<th data-priority="1">Names</th>
<th data-priority="1">Fruits</th>
<th data-priority="1">Status</th>
</tr>
</thead>
<tbody>
<tr>
<th>Cat</th>
<td>Football</td>
<td>Anna</td>
<td>Apple</td>
<td></td>
</tr>
<tr>
<th>Dog</th>
<td>Baseball</td>
<td>James</td>
<td>Banana</td>
<td>Checked</td>
</tr>
<tr>
<th>Shark</th>
<td>Hockey</td>
<td>David</td>
<td>Orange</td>
<td>Checked</td>
</tr>
<tr>
<th>Ape</th>
<td>PingPong</td>
<td>Locke</td>
<td>Mango</td>
<td></td>
</tr>
</tbody>
</table>
我的问题是:我能否以某种方式将 css class 或 css 一般添加到 [=14= 中获得字符串 "Checked"
的行].
我试过类似的东西:
var qTable = document.getElementById("testTable");
var row = qTable.tBodies[0].insertRow();
row.addClass() //error does not support addClass
row.css({..})//error does not support css..
NOTE: The table content gets added Dynamically
试试这个,
JS
$("#testTable td").each(function(){
if($(this).text() =='StatusChecked'){
$(this).parent().addClass('checked');
}
});
CSS(仅用于测试样式)
.checked{
background:green;
}
已更新 fiddle -
https://jsfiddle.net/guruling/erc3ujzw/
使用contains:
伪选择器用你的标记过滤掉<td>
s,然后得到它们的父节点(<tr>
s)
$('td').filter(":contains('Checked')").parent().addClass('sugar')
尝试:
$("#testTable tr").each(function(){
var tds = $(this).find("td");
var statusCell = $(tds[3]);
var statusCellTxt = statusCell.text();
if (statusCellTxt.indexOf('Checked') !== -1){
$(statusCell).css('border', '1px solid red');
}
});
参见 fiddle HERE。
我正在使用 jquery 移动设备创建一个网站,在那个网站上我得到了一个 table,看起来像这样:
FIDDLE
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css">
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<table data-role="table" class="ui-responsive ui-shadow gk-decorate" id="testTable" is="jqm-table">
<thead>
<tr>
<th data-priority="1">Animal</th>
<th data-priority="1">Sports</th>
<th data-priority="1">Names</th>
<th data-priority="1">Fruits</th>
<th data-priority="1">Status</th>
</tr>
</thead>
<tbody>
<tr>
<th>Cat</th>
<td>Football</td>
<td>Anna</td>
<td>Apple</td>
<td></td>
</tr>
<tr>
<th>Dog</th>
<td>Baseball</td>
<td>James</td>
<td>Banana</td>
<td>Checked</td>
</tr>
<tr>
<th>Shark</th>
<td>Hockey</td>
<td>David</td>
<td>Orange</td>
<td>Checked</td>
</tr>
<tr>
<th>Ape</th>
<td>PingPong</td>
<td>Locke</td>
<td>Mango</td>
<td></td>
</tr>
</tbody>
</table>
我的问题是:我能否以某种方式将 css class 或 css 一般添加到 [=14= 中获得字符串 "Checked"
的行].
我试过类似的东西:
var qTable = document.getElementById("testTable");
var row = qTable.tBodies[0].insertRow();
row.addClass() //error does not support addClass
row.css({..})//error does not support css..
NOTE: The table content gets added Dynamically
试试这个,
JS
$("#testTable td").each(function(){
if($(this).text() =='StatusChecked'){
$(this).parent().addClass('checked');
}
});
CSS(仅用于测试样式)
.checked{
background:green;
}
已更新 fiddle -
https://jsfiddle.net/guruling/erc3ujzw/
使用contains:
伪选择器用你的标记过滤掉<td>
s,然后得到它们的父节点(<tr>
s)
$('td').filter(":contains('Checked')").parent().addClass('sugar')
尝试:
$("#testTable tr").each(function(){
var tds = $(this).find("td");
var statusCell = $(tds[3]);
var statusCellTxt = statusCell.text();
if (statusCellTxt.indexOf('Checked') !== -1){
$(statusCell).css('border', '1px solid red');
}
});
参见 fiddle HERE。