这只是一个示例,我正在编写的程序jQuery似乎是我使用的一些功能的更好的路径。无论如何这是问题所在。在我的第二个div上,单击编辑按钮,当我单击编辑按钮时,我想要提醒文本框的值。
是的,这可能是重复的,但是其他堆栈问题的答案已经告诉我使用该类而不是Id。我有,但jquery只影响第一个div。当我点击第一个div上的编辑时它会提醒251.但是当我点击第二个div上的编辑时它会提醒251我希望它提醒351.感谢Stack。
<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(document).ready(function(){
$('.editdet').click (function() {
alert($('.addet').val());
});
});
</script>
</head>
<body>
<div class = "newbox">
<form class = "something">
<table>
<tr>
<td>
<input type="text" id="addet" class = "addet" value="251"/>
<input type="button" id="editdet" class = "editdet" value="Edit"/>
</td>
</tr>
</table>
</form>
</div>
<br>
<div class = "newbox">
<form class = "something">
<table>
<tr>
<td>
<input type="text" id="addet" class = "addet" value="351"/>
<input type="button" id="editdet" class = "editdet" value="Edit"/>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
答案 0 :(得分:3)
这是因为$('.addet')
是具有类名addet
的所有元素的集合。
然后,当您对集合执行.val()
时,它会抓取集合中的第一个值,这是页面上的第一个值,因此251
您需要获得与您点击的addet
相关的editdet
。您可以使用prev()
函数实现此目的:
$('.editdet').click (function() {
alert($(this).prev('.addet').val());
});
将获得前一个元素。
无论您的元素在哪里,您都需要相对于当前元素($(this)
)的位置遍历DOM结构。
Some helpful jQuery functions for traversing the DOM structure
答案 1 :(得分:3)
首先,你不能拥有类似的身份证。 第二件事是你没有正确定位你的价值。
您需要使用 Sibiling / Previous Selector
'i18n' => [
'translations' => [
'*' => [
'class' => 'yii\i18n\PhpMessageSource',
'fileMap' => [
'bar' => 'bar.php'
],
],
],
],
在这个特定的情况下应该工作
答案 2 :(得分:1)
使用
<input onclick="edit()" type="button" id="editdet" class = "editdet" value="Edit"/>
与
<script>
function edit() {
alert($(this).prev().val());
}
</script>
答案 3 :(得分:0)
您可以使用以下代码进行尝试:
<script>
function edit() {
alert($(this).parent().find(".addet").val());
}
</script>
答案 4 :(得分:0)
试试这个,
$(".addet").each(function() {
alert($(this).val());
});