我一直在尝试删除每个div中<br>
之后的变量生成定价(来自生成的列表)。这是:
<div class="p-name">
<a href="somelink.html" class="TLink">Product Name<br>$1.91</a>
</div>
<div class="p-name">
<a href="somelink2.html" class="TLink">Product Name2<br>$55.91</a>
</div>
我试过了:
$('.p-name').nextAll('br').remove();
和
$(".p-name").nextAll().remove();
价格可以从0.00美元到40,000.00美元
有任何帮助吗?我应该使用Javascript吗?
答案 0 :(得分:2)
每个锚标记都有三个子节点:text + br + text。
要删除br + tx,您可以这样做:
$('.p-name').find('a').each(function(index, element) {
element.childNodes[1].remove();
element.childNodes[1].remove();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="p-name">
<a href="somelink.html" class="TLink">Product Name<br>$1.91</a>
</div>
<div class="p-name">
<a href="somelink2.html" class="TLink">Product Name2<br>$55.91</a>
</div>
&#13;
答案 1 :(得分:1)
另一种方法是使用a
substr
的内容
$(".p-name a").each(function() {
var content = $(this).html();
$(this).html(content.substr(0,content.indexOf('<br>')));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="p-name">
<a href="somelink.html" class="TLink">Product Name<br>$1.91</a>
</div>
<div class="p-name">
<a href="somelink2.html" class="TLink">Product Name2<br>$55.91</a>
</div>
答案 2 :(得分:1)
您可以定位<br>
元素,然后定位其后的所有兄弟元素,然后删除所有元素,这样就不会计算文本节点,这可能是不可靠的
$('.TLink br').each(function(_, el) {
var els = [];
while (el = el.nextSibling) els.push(el);
$(els).remove();
}).remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="p-name">
<a href="somelink.html" class="TLink">Product Name<br>$1.91</a>
</div>
<div class="p-name">
<a href="somelink2.html" class="TLink">Product Name2<br>$55.91</a>
</div>