作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想做的是使用jquery、ajax和google货币转换页面上的所有价格。
我发现了这个,它工作正常。
$('#submit').click(function(){
//Get the values
var amount = $('#amount').val();
var from = $('#from').val();
var to = $('#to').val();
var params = "amount=" + amount + "&from=" + from + "&to=" + to ;
$.ajax({
type: "POST",
url: "currency-converter.php",
data: params ,
success: function(data){
$('#converted_value').html(amount + from +" is equal to : " +data);
}
});
}) ;
如何将其应用于页面上的 div 类?假设我有一个priceEuro 类;
<div class="product">
<div class="priceEuro"><?php the_field('price1'); ?></div>
</div>
<div class="product">
<div class="priceEuro"><?php the_field('price2'); ?></div>
</div>
<div class="product">
<div class="priceEuro"><?php the_field('price3'); ?></div>
</div>
现在我想转换所有不同的价格并将结果添加到这样的产品中,
$('.priceEuro').each(function () {
var amount = $(this).val();
var params = "amount=" + amount + "&from=EUR" + "&to=USD" ;
$.ajax({
type: "POST",
url: "currency-converter.php",
data: params ,
success: function(data){
$(this).append("<div class="priceUsd">'+ data +'</div>");
}
});
我知道这样不对,那么解决方案是什么?谢谢。
<小时/>感谢@UnTechie,现在我得到了结果,
$(document).ready(function() {
$.each($('.priceEuro'), function () {
var amount = $(this).text();
var dataString = "amount=" + amount + "&from=EUR" + "&to=USD";
$.ajax({
type: "POST",
url: "chalo/themes/chalo/ajax_converter.php",
data: dataString,
success: function(data){
console.log(data);
$(this).append('<div class="priceUsd">'+ data +'</div>');
}
});
});
});
但我无法在每个 div 之后附加这些结果,这是错误的吗?
$(this).append('<div class="priceUsd">'+ data +'</div>');
<小时/>
好的,我发现问题了。 this
不会自动引用 ajax 回调中的正确对象。
现在它的工作方式是这样的,
$(document).ready(function() {
$.each($('.priceEuro'), function () {
var $this = $(this);
var amount = $(this).text();
var dataString = "amount=" + amount + "&from=EUR" + "&to=USD";
$.ajax({
type: "POST",
url: "chalo/themes/chalo/ajax_converter.php",
data: dataString,
success: function(data){
console.log(data);
$this.append('<div class="priceUsd">'+ data +'</div>');
}
});
});
});
最佳答案
您需要使用 jquery.each( http://api.jquery.com/jQuery.each/ )
这就是你的代码应该是什么样的..
$.each($('.priceEuro'), function () {
//Your code goes here ... Use $(this) to access each element
});
关于javascript - 将谷歌货币转换器应用于页面上的所有价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522562/
我是一名优秀的程序员,十分优秀!