我正在编写购物网站的前端,方案是: 如果我们有销售报价,那么首先必须通过直接价格并且插入价格旁边。
所以这是我的jquery:
$(document).ready(function () {
if ($('.price span.price-new').text().length != '') {
this.prev('.price span.price-new').before("€").text();
this.prev("span").css({"text-decoration": "line-through"});
}
});
这是我的HTML:
<?php
foreach( $this->products() as $products)
{
echo
'<div class="price"><span class="price-old">€ '.$products['price'].'</span>'.
'<span class="price-new">'.$products['special_price'].'</span></div>'.'</div>';}?>
他们两个都没有工作。 我尝试用$(这个)它也没有用,因为我们有许多价格新的课程,我不能提到特定的编辑课程,我也使用prevUntil但仍然没有。
答案 0 :(得分:0)
不应该更像这样吗?
$(document).ready(function () {
$('.price-old').css({"text-decoration": "line-through"});
$('.price-new').text(function(index, old_text) {
return "€" + old_text;
})
});
(所有额外的代码是什么?)
答案 1 :(得分:0)
你的代码是不遵循jquery规则的。
.text().length != ''
.length
此选项始终返回整数值,因此您无法像!= ''
这里
this.prev('.price span.price-new').before("€").text();
this.prev("span").css({"text-decoration": "line-through"});
根据您的代码.prev
表示$(document).prev
尝试这样的事情:
$(document).ready(function () {
$('.price span.price-new').each(function() {
$(this).prev().before("€");
}
});
如果你能给我一点解释,我可以给你一个更好的解释
答案 2 :(得分:0)
this
关于范围和文档范围的工作,这引用了窗口对象,这就是它无法工作的原因。你必须选择特定的元素,然后尝试prev()。