我正在尝试获取HTML元素中已存在的值,并使用jQuery将其传递给另一个元素。我不确定我是否错误地引用了该元素,因为它返回的不是数字值。你能看一下我的代码和帮助吗?
var oldPrice = parseFloat(jQuery('.product-price-worth .price .price').first().text().replace(/[^0-9\.]+/g, ""), 10);
$('div.ratio-div').html('<p>Now ' + oldPrice + '</p>');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="regular-price" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
<link itemprop="availability" href="http://schema.org/InStock" content="In Stock">
<span id="product-price-12674" class="product-price-worth">
<span class="symbol-block">
<span class="price-comment">Now</span>
<span class="currency-symbol">£</span>
</span>
<span itemprop="price">
<span class="price"><span class="currency"></span>169</span>
</span>
</span>
</span>
<div class="ratio-div"> </div>
&#13;
答案 0 :(得分:1)
var oldPrice = parseFloat(jQuery('.product-price-worth [itemprop="price"] .price').first().text().replace(/[^0-9\.]+/g, ""), 10);
$('div.ratio-div').html('<p>Now ' + oldPrice + '</p>');
你需要在那里使用属性选择器,编辑[itemprop="price"]
,因为你已经使用了itemprop作为class price元素之前的属性。
https://jsfiddle.net/nqo6n8e6/3/
答案 1 :(得分:1)
oldprice = jQuery('.product-price-worth span.price').text();
oldprice = parseFloat(oldprice.replace(/[^0-9\.]+/g, ""), 10);
答案 2 :(得分:1)
如果您在价格类的范围内添加id
,请执行以下操作:
<span class="price" id="oldPrice"><span class="currency"></span>169</span>
然后你可以像这样得到价值:
var oldPrice = parseFloat($('#oldPrice').text());
答案 3 :(得分:1)
您的代码很完美,但您在jquery中使用两个类作为同名(.price)。 试试这个:
var oldPrice = parseFloat(jQuery('.product-price-worth .price').first().text().replace(/[^0-9\.]+/g, ""), 10);
$('div.ratio-div').html('<p>Now ' + oldPrice + '</p>');
&#13;
<span class="regular-price" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
<link itemprop="availability" href="http://schema.org/InStock" content="In Stock">
<span id="product-price-12674" class="product-price-worth">
<span class="symbol-block">
<span class="price-comment">Now</span>
<span class="currency-symbol">£</span>
</span>
<span itemprop="price">
<span class="price"><span class="currency"></span>169</span>
</span>
</span>
</span>
<div class="ratio-div"> </div>
&#13;
答案 4 :(得分:0)
选择器中的第一个.price
'.product-price-worth .price .price'
不存在,因为span是
<span itemprop="price">
你可以:
将选择器更改为:
&#39; .product-price-worth [itemprop =&#34; price&#34;] .price&#39;
将范围更改为
完全删除一个.price
,因为选择器中的[空格]意味着任何级别的任何子级,而不仅仅是直接的后代
&#39; .product-price-worth .price&#39;