以下代码使用服务器推送执行:
$('tr[name=' + device + ']').find("td[id='status']").text('STARTED');
当我尝试访问元素的id时,它会给出正确的结果
$('tr[name=' + device + ']').find("td[id='status']").attr('id'); // works for me
但是当我尝试使用html或文本更新文本时,它无法正常工作。
HTML:
<table class="table table-bordered table-condensed cf">
<thead class="cf">
<tr>
.........
................
</tr>
</thead>
<tbody>
<tr id="car0" name="5" class="redRow">
<td><a href="#" style="color: white">.....</a></td>
<td>.....</td>
<td>.....</td>
<td>......</td>
<td id="5status">......</td>
<td>.....</td>
<td>.....</td>
<td>........</td>
</tr>
<tr id="car2" name="8" class="redRow">
<td><a href="#" style="color: white"> ....</a></td>
<td>......</td>
<td>......</td>
<td>......</td>
<td id="6status">0 km/h</td>
<td>........</td>
<td>..........</td>
<td>..........</td>
</tr>
</tbody>
</table>
我甚至尝试了$(&#39;#6status&#39;)。text(&#39; STARTED&#39;);但是没有用。
答案 0 :(得分:0)
你的td元素在子串status
之前有数字。
因此使用selector来获取元素包含子串status
。
详细了解此选择器here
<强>解决方案:强>
$('tr[name=' + device + ']').find("td[id*='status']").text('STARTED');
示例:强>
$(function() {
var device = '8';
$('tr[name=' + device + ']').find("td[id*='status']").text('STARTED');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="table table-bordered table-condensed cf">
<thead class="cf">
<tr>
.........
................
</tr>
</thead>
<tbody>
<tr id="car0" name="5" class="redRow">
<td><a href="#" style="color: white">.....</a></td>
<td>.....</td>
<td>.....</td>
<td>......</td>
<td id="5status">......</td>
<td>.....</td>
<td>.....</td>
<td>........</td>
</tr>
<tr id="car2" name="8" class="redRow">
<td><a href="#" style="color: white"> ....</a></td>
<td>......</td>
<td>......</td>
<td>......</td>
<td id="6status">0 km/h</td>
<td>........</td>
<td>..........</td>
<td>..........</td>
</tr>
</tbody>
</table>