我正在研究wordpress插件,该插件每隔几秒钟就会更新一次股价。我在html表格中显示股票价格,该表格在php循环中执行,该表格以wordpress帖子的形式获取股票。在我的代码中,我需要帖子的标题,才能调用获取特定股价的函数。
<?php $query = new WP_Query( $args );
if ($query->have_posts()) :
$i = 1;
while ($query->have_posts()) : $query->the_post();
?>
<td class="name"><?php the_title(); ?></td>
<td class="price" id="<?php echo $i; ?>" value="<?php echo get_the_title(); ?>"></td>
我想将特定股票发布的ID传递给jQuery ajax函数。
jQuery(document).ready( function($){
setInterval(callMe, 5000);
});
function callMe(){
var id = $('.price').attr("id");
var titleInput = jQuery('#' + id).attr("value");
$.ajax({
type: 'POST',
url: ajax_object.ajaxurl,
dataType: 'json',
data: {
action: 'myaction',
post_title: titleInput
},
success: function(response){
$('#' + id).html(response);
}
});
}
这仅返回第一个id,然后也仅传递第一个帖子标题,而不传递其他帖子。
问题仅在于我如何调用ID?我在玩我如何调用var id的方法,但是无法使其正常工作。
var id = $('.price').attr("id");
如果您对如何解决此问题有一些建议,请提供帮助。
答案 0 :(得分:0)
$('.price')
返回一个集合,虽然有一些函数(如.css()
)直接对它们进行操作,但是.attr()
仅对单个元素进行操作,因此仅返回该元素的值。第一个:
console.log($('.price').length)
console.log($('.price').attr('id'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="price" id="id1" value="value1"></div>
<div class="price" id="id2" value="value2"></div>
您必须为每个单独的元素调用函数:
function callMe() {
$('.price').each(function() {
var id = $(this).attr("id");
var titleInput = $(this).attr("value");
$.ajax({
type: 'POST',
url: ajax_object.ajaxurl,
dataType: 'json',
data: {
action: 'myaction',
post_title: titleInput
},
success: function(response) {
$('#' + id).html(response);
}
});
});
}