我需要想出一种方法来检查具有隐藏元素的特定值,如果找到,则显示特定消息。我认为可以用jQuery来完成,但我正在努力想办法......
这是我的代码的简化版本。我需要在课堂上发一条消息
outputHere
该消息是有条件的,基于我是否会找到一个带有跨度的类sku
,它位于嵌套表中,位于隐藏的TR
中...
如果找到SKU值,我输出它,如果不是我查找ITEMID,如果两者都找不到,我输出一个默认消息......
<table>
<tr>
<td>
<div class="outputHere">val</div>
</td>
</tr>
<tr>
<td>
<div>
<table class="nested">
<tr>
<td>
<span class="sku">SKU number</span>
</td>
</tr>
</table>
<tr>
<td>
</div>
</td>
</tr>
</table>
有点不知所措......认为它应该是这样的:
$('.outputHere').each(function() {
var $message =
$(this).parents('table').closest('tr').find('span.sku');
if ($message) {
$(this).text($message); } else {
$(this).text('Default message');
}
});
更新
如果我的SKU单元没有class =“sku”而是SKU编号怎么办?那么我如何找到SKU值呢?
<table>
<tr>
<td>
<div class="outputHere">val</div>
</td>
</tr>
<tr>
<td>
<div>
<table class="nested">
<tr>
<td>
<span class="label">SKU:</span>
</td>
<td>sku_value</td>
</tr>
</table>
<tr>
<td>
</div>
</td>
</tr>
</table>
答案 0 :(得分:1)
$('.outputHere').each(function() {
var $this = $(this);
var $span = $this.closest('tr').next('tr').find('span.sku');
if($span.html().length) {
$this.text($span.html());
} else {
$this.text('Span Not found !!');
}
});
<强> Check Fiddle 强>
更新后的内容
如果是这种情况,我会使用:contains selector
$('.outputHere').each(function() {
var $this = $(this);
var $span = $this.closest('tr').next('tr').find('.label:contains(SKU)');
if($span.html().length) {
var num = $span.html().split(':')[1];
$this.addClass('changed').text(num);
} else {
$this.text('SKU Not found !!');
}
});
<强> UPDATED FIDDLE 强>