我有这样的东西
<td class="standaard_klein" align="right">
<div class="timereg<?php echo $TEL;?>" id="timereg<?php echo $TEL;?>">
<i contenteditable><?php print(number_format($line2['WERKUREN'], 2, ',','')); ?>
</i>
</div>
</td>
<input type="hidden" name="hist_id" id="hist_id<?php echo $TEL;?>" value="<?php echo $line['ID'];?>">
<input type="hidden" name="counter" id="counter" value="<?php echo $TEL;?>">
和JS函数
<script type="text/javascript" language="javascript">
var counter = document.getElementById('counter').value;
$('#timereg'+counter).keypress(function(event){
if(event.keyCode == 13){
var x = document.getElementById('timereg'+counter).textContent;
var y = document.getElementById('hist_id'+counter).value;
$('#timereg'+counter).load('change_timereg.php?newtime=' + x + '&user=<?php echo $_SESSION['loginid'];?>&hist_id='+ y);
}
});
</script>
,但它只得到第一个"计数器"元素。我如何修改功能,以获得特定的"计数器"?$TEL是我想要得到的计数器值。(通常是$i,但这里用了$TEL)。
解决方案:jsfiddle.net/qmtGK THANK TO Jacob Amerz
假设您写
<input type="hidden" name="counter" id="counter" value="<?php echo $TEL;?>">
不仅一次,而且在循环中,您对许多元素使用相同的id,这是行不通的。
我可以建议一个不同的方法吗?给每个div相关的计数器并附加一个共享类
<div class="timereg<?php echo $TEL;?> shared_class" related-counter="counter<?php echo $tel;?>" id="timereg<?php echo $TEL;?>">
<i contenteditable><?php print(number_format($line2['WERKUREN'], 2, ',','')); ?>
</i>
</div>
<input type="hidden" name="counter" id="counter<?php echo $tel;?>" value="<?php echo $TEL;?>">
和js:
$('.shared_class').keypress(function(event){
if(event.keyCode == 13){
// ... whatever you want to do
related_counter = $(this).attr("related-counter");
$("#"+related_counter).load('change_timereg.php?newtime=' + x + '&user=<?php echo $_SESSION['loginid'];?>&hist_id='+ y);
}
});
问题是您在页面加载时只读取一次counter的值。
您需要做的是,当按下enter key
时,您需要找到对应的计数器值。
$('#timereg'+counter).keypress(function(event){
if(event.keyCode == 13){
var counter = $(this).closest('td').find(':input[name="counter"]').val();
var x = document.getElementById('timereg'+counter).textContent;
var y = document.getElementById('hist_id'+counter).value;
$('#timereg'+counter).load('change_timereg.php?newtime=' + x + '&user=<?php echo $_SESSION['loginid'];?>&hist_id='+ y);
}
});