在下面的代码中我'试图获得" 1"它位于td
内,想要排除按钮的文本。我尝试使用:not('button')
,但它无效。
这是我的HTML在渲染之前的样子:
<td id="sqty">
<?php echo $quantity; ?>
<?php if(!empty($ret_qty)){ ?><button style="margin-left: 2px;" class="btn btn-danger btn-xs">returned <?php echo $ret_qty; ?></button><?php } ?>
</td>
这是渲染后HTML的样子:
<td id="sqty">1
<button style="margin-left: 2px;" class="btn btn-danger btn-xs">returned 3</button>
</td>
JS:
var pickQty = $(".exchange-panel .prod-in-bill").find("#"+id).find("#sqty:not('button')").text().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
答案 0 :(得分:1)
您无法使用CSS选择器选择文本节点。为什么不选择sqty
并获取其第一个子节点,即文本节点?不需要jQuery
const num = document.querySelector('#sqty').childNodes[0].textContent.trim();
console.log(num);
&#13;
<table><tr>
<td id="sqty">1
<button style="margin-left: 2px;" class="btn btn-danger btn-xs">returned 3</button>
</td>
</tr></table>
&#13;
答案 1 :(得分:0)
您可以找到子元素,删除它们,在删除子元素后选择最后一个值,最后修剪空格。
var id = 'sqty';
var pickQty = $("#"+id).children().remove().end().text().trim();
console.log(pickQty);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td id="sqty">1
<button style="margin-left: 2px;" class="btn btn-danger btn-xs">returned 3</button>
</td>
</tr>
</table>
&#13;