我有一个jQuery代码:
$('.team-leader-id').delegate('button', 'click', function() {
var parent_object = $(this);
var admin_id = $(this).parents('.team_data').find('.leader-id').val();
var team_id = $(this).parents('.team_data').find('.team-hidden-id').val();
$(this).parents('.team_data').find('.team-leader-mod-button').attr('disabled', 'disabled');
$(this).parents('.team_data').find('.team-leader-modify').html('Mégse');
$(this).parents('.team_data').find('.ajax-json-response').fadeOut(1).html('');
$(this).parents('.team_data').find('.ajax-json-loading').html('<img src="images/progress-dots.gif" />').fadeIn('slow');
$.ajax({
type: 'POST',
url: 'json.php',
dataType: 'json',
cache: false,
timeout: 20000,
data: { a: 'change_team_admin', admin_id: admin_id, team_id: team_id },
success: function(data) {
$(parent_object).parents('.team_data').find('.ajax-json-loading').fadeOut(1).html('');
$(parent_object).parents('.team_data').find('.ajax-json-response').html(data.message).fadeIn(400).delay(2000).slideUp(400);
if (!data.error) {
$(parent_object).parents('.team_data').find('.team-leader-id').html('<a href="http://lanseries.hu/index.php?oldal=profile&p_id='+admin_id+'" target="_blank">'+admin_id+'</a>');
PROBLEM -->$(parent_object).parents('.team_data').find('.team-leader-modify').text('OKÉ');<--
} else {
$(parent_object).parents('.team_data').find('.team-leader-mod-button').removeAttr('disabled');
$(parent_object).parents('.team_data').find('.team-leader-modify').html('<a href="javascript:void(0)">Mégse</a>');
}
},
error: function(jqXHR, textStatus, errorThrown) {
$(parent_object).parents('.team_data').find('.ajax-json-loading').fadeOut(1).html('');
//$(parent_object).parents('.team_data').find('#ajax-json-response').html('Probléma történt! Kérlek próbáld újra később! (HTTP Error: '+errorThrown+' | Error Message: '+textStatus+')').fadeIn('slow');
$(parent_object).parents('.team_data').find('#ajax-json-response').html('Probléma történt! Kérlek próbáld újra később, és ellenőrizd az internetkapcsolatod!').fadeIn('slow');
}
});
});
一切运作良好,没关系,但是一行没有运行!你可以在代码中找到它。
PROBLEM -->$(parent_object).parents('.team_data').find('.team-leader-modify').text('OKÉ');<--
HTML :(这个代码部分有数千个,所以我无法在任何地方使用id
。
<div class="dnone team_data" id="team_<?php echo $allnum; ?>" style="padding: 10px; margin: 2px 0 2px 0; border: 1px solid <?php echo $site_color; ?>;">
<div class="ajax-json-loading"></div>
<div class="ajax-json-response"></div>
<table cellspacing="5">
<tr>
<td valign="top" style="width: 100px;">
<b>Csapat vezető:</b>
</td>
<td class="team-leader-area">
<input type="hidden" class="team-leader-hidden-id" value="<?php echo $value['leader']; ?>" />
<input type="hidden" class="team-hidden-id" value="<?php echo $value['id']; ?>" />
<div class="team-leader-id"><a href="http://lanseries.hu/index.php?oldal=profile&p_id=<?php echo $value['leader']; ?>" target="_blank"><?php echo $value['leader']; ?></a></div>
<div class="team-leader-modify"><a href="javascript:void(0)">Módosít</a></div>
</td>
</tr>
<tr>
<td valign="top" style="width: 100px;">
<b>Befizető címe:</b>
</td>
<td>
<?php echo $value['p_address']; ?>
</td>
</tr>
</table>
你能告诉我为什么吗?
提前致谢!
答案 0 :(得分:1)
分解。我会在问题行上方添加以下内容并检查Chrome中的控制台是否存在条目:
console.dir($(parent_object).parents('.team_data'));
console.dir($(parent_object).parents('.team_data').find('.team-leader-modify'));
$(parent_object).parents('.team_data').find('.team-leader-modify').text('OKÉ');
console.dir($(parent_object).parents('.team_data').find('.team-leader-modify').text());
另外,我不会拨打$(parent_object).parents('.team_data')
这么多电话。这是一个有点昂贵的操作。
相反,在响应函数的开头,执行以下操作:
var $teamData = $(parent_object).parents('.team_data');
然后为剩余的jQuery调用引用$ teamData。