我有类似的东西
<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感谢Jacob Amerz
答案 0 :(得分:1)
假设你写了
<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);
}
});
答案 1 :(得分:0)
问题是你在页面加载时只读取一次计数器的值。
你需要做的是当按下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);
}
});