从标签获取文本而不包含其余内容

时间:2016-11-17 03:15:57

标签: jquery

我的HTML如下:

<span class="price">
    0
    <sup>$</sup>
</span>

如何在没有0的情况下才能获得<sup>$</sup>

我试过了:

var total = parseFloat($('.price').text());

感谢。

5 个答案:

答案 0 :(得分:1)

  

$( “价”)

返回一个集合或数组,需要指定该元素。在这种情况下,您可以使用JQuery eq函数指定它。

var total = parseFloat($('.price').eq(0).text());

我使用0(零),因为您的HTML只有一个元素价格

自己尝试一下: https://jsfiddle.net/ggderas/Ln7gd74n/3

答案 1 :(得分:1)

试试这个

&#13;
&#13;
var price = $('.price').contents().map(function() {
                if (this.nodeType == 3 && this.textContent.trim() != '') return Number(this.textContent);
        }).get().join();

console.log(price);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<span class="price">
    0
    <sup>$</sup>
</span>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

您可以通过以下分割轻松获得

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>

<span class="price">
    0
    <sup>$</sup>
</span>


</body>


<script type="text/javascript">
	$(document).ready(function(){
		var thePricewith_$ = $(".price").text(); // get the text
		var splitted = thePricewith_$.split("$"); // split it from dollar sign

		var onlyPrice = splitted[0]; // this gives the price text
		var dollarSign = splitted[1]; // this gives the dollar sign
		alert("price without dollar sign : "+ onlyPrice) // print only the price

//additional, if you want to convert it to int and use it do it like this
//   var piceInt = parseInt(onlyPrice)
//   alert(piceInt+5)


	});

</script>


</html>
&#13;
&#13;
&#13;

  • 并且您还可以将其转换为int并在评论中使用它。希望这会对你有所帮助。

答案 3 :(得分:0)

获取innerHTML并删除标记内的任何内容:

var text = document.getElementsByClassName('price')[0].innerHTML.replace(/<.*>.*<\/.*?>/g, '');
console.log(text);
<body>
  <span class="price">
    0
    <sup>$</sup>
</span>
  <?body>

答案 4 :(得分:0)

假设只有一个对象的类price,并且您想忽略子节点中的任何文本...

&#13;
&#13;
var total = parseFloat($('.price')[0].childNodes[0].nodeValue);
console.log(total);
console.log($('.price')[0].childNodes[0].nodeValue);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<span class="price">
    0<sup>$</sup>
</span>
&#13;
&#13;
&#13;

这也可以在没有jquery的情况下稍作修改:

var total = parseFloat(document.getElementsByClassName('price')[0].childNodes[0].nodeValue);