在html中的每个div中调用javascript函数
嗨,我有一个javascript函数,我希望它在c_id循环时调用。但我对此一无所知 这是我的功能在html中的每个div中调用javascript函数,javascript,ajax,html,Javascript,Ajax,Html,嗨,我有一个javascript函数,我希望它在c_id循环时调用。但我对此一无所知 这是我的功能 function getCLowestPrice(c_id){ $.ajax({ type: "POST", url: 'http://sample.com/api/store_lowest_price/', dataType: "xml", cache: false, data: {'id' : c_id}, success: fu
function getCLowestPrice(c_id){
$.ajax({
type: "POST",
url: 'http://sample.com/api/store_lowest_price/',
dataType: "xml",
cache: false,
data: {'id' : c_id},
success: function(resp){
// we have the response
console.log(resp);
$(resp).find("response").each(function() {
var c_name = $(this).find("c_name").text();
var c_currency = $(this).find("currency").text();
var c_min_price = $(this).find("price_min").text();
var formated_price = addCommas(parseFloat(c_min_price).toFixed(2));
$('.cinformation').html("<p>Lowest Price : " + c_currency + " " + formated_price + "</p>");
});
},
});
}
函数getCLowestPrice(c_id){
$.ajax({
类型:“POST”,
网址:'http://sample.com/api/store_lowest_price/',
数据类型:“xml”,
cache:false,
数据:{'id':c_id},
成功:功能(resp){
//我们得到了答复
控制台日志(resp);
$(resp).find(“response”).each(函数(){
var c_name=$(this).find(“c_name”).text();
var c_currency=$(this).find(“currency”).text();
var c_min_price=$(this).find(“price_min”).text();
var formatted_price=addCommas(parseFloat(c_min_price).toFixed(2));
$('.cinformation').html(“最低价格:“+c\U货币+”+“+c\U格式价格+””);
});
},
});
}
我希望它在div加载时调用。但它会循环所有客户机及其c_id
<div>
Client : <?php echo get_post_meta($post->ID, 'wpcf-c', true); ?>
<div class="cinformation">
C ID = <?php echo get_post_meta($post->ID, 'wpcf-c-id', true); ?>
....
</div>
...
</div>
客户:
C ID=
....
...
因此,当它循环时,它将是这样
<div>
Client : Hello
<div class="cinformation">
C ID = 1
....
</div>
...
</div>
....
<div>
Client : World
<div class="cinformation">
C ID = 2
....
</div>
...
</div>
....
....
...
客户:你好
C ID=1
....
...
....
客户:世界
C ID=2
....
...
....
....
...
但是我不知道如何在cinformation div
中添加getCLowestPrice(c_id)
我尝试使用onload
,但它不能在div中使用
有人知道我的案子吗
提前感谢…您需要使用如下数据属性放置您的C ID:
<div>
Client : Hello
<div class="cinformation" data-c_id="1">
</div>
</div>
你可以试着添加这个
<script type="text/javascript">
getCLowestPrice (<?php echo get_post_meta($post->ID); ?>)
</script>
getCLowestPrice()
在php中的for循环中,我不知道您想做什么。你能发布一个正在运行的JSFIDLE吗?我假设你正在调用的服务器不是你控制的服务器?即使不是,该API是否支持同一查询中的多个ID?如果可以的话,最好减少AJAX查询的数量。事实上,数据是否经常变化?我想你可能应该从php中查询并缓存信息谢谢daniel的回答,我试过了,但我遇到了这个问题。它只会调用第一个
data-c_id
,当我检查元素时,没有问题,有
和
,但是getCLowestPrice(cId)
只会调用第一个cinformation
丹尼尔的代码在我看来是正确的;听起来有些调试已经就绪。如果您使用的是Firebug,那么可以将断点放入其中,并检查jQuerySelect是否返回您期望的所有元素,以及函数是否被正确调用。如果您没有使用Firebug,则可以对alert()执行相同的检查
<script type="text/javascript">
getCLowestPrice (<?php echo get_post_meta($post->ID); ?>)
</script>