function edt(dt){
isi = $(".jml").val();
alert(isi);
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<tr>
<td><input class="jml" id="edt1" value="1"/></td>
<td><button id="edt1" onClick="edt(this.id);">btn 1</button></td>
</tr>
<tr>
<td><input class="jml" id="edt1" value="2"/></td>
<td><button id="edt2" onClick="edt(this.id);">btn 2</button></td>
</tr>
&#13;
我正试图从与我点击的内容相同的身份获得价值。 在那个剧本中,虽然我点击了btn 2,但是出现了第一个值 请帮帮我..谢谢!!
答案 0 :(得分:1)
您的代码中存在多个问题,
id
传递给edt
但您没有使用它isi = $(".jml").val();
将始终使用类jm1
更多jQuery-ish解决方案将是
this
上下文查找同一行中的input
元素
jQuery(function($) {
$('.edt').click(function() {
var isi = $(this).closest('tr').find('.jml').val();
console.log('value: ' + isi)
})
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr>
<td>
<input class="jml" id="edt1" value="1" />
</td>
<td>
<button class="edt">btn 1</button>
</td>
</tr>
<tr>
<td>
<input class="jml" id="edt1" value="2" />
</td>
<td>
<button class="edt">btn 2</button>
</td>
</tr>
</table>
&#13;
如果你不能使用jQuery事件处理程序那么
<button class="edt" onclick="edt(this)">btn 2</button>
function edt(el) {
var isi = $(el).closest('tr').find('.jml').val();
console.log('value: ' + isi)
}
function edt(el) {
var isi = $(el).closest('tr').find('.jml').val();
console.log('value: ' + isi)
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr>
<td>
<input class="jml" id="edt1" value="1" />
</td>
<td>
<button class="edt" onclick="edt(this)">btn 1</button>
</td>
</tr>
<tr>
<td>
<input class="jml" id="edt1" value="2" />
</td>
<td>
<button class="edt" onclick="edt(this)">btn 2</button>
</td>
</tr>
</table>
&#13;
答案 1 :(得分:1)
改变你的功能。 ID must be unique [notice]
,使用前缀“#”获取ID。
function edt(dt){
isi = $("#"+dt).closest("tr").find(".jml").val();
alert(isi);
}
答案 2 :(得分:0)
$('button').click(function() {
alert($(this).closest('tr').find('input').val())
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>
<input class="jml" class="edt1" value="1" />
</td>
<td>
<button class="edt1">btn 1</button>
</td>
</tr>
<tr>
<td>
<input class="jml" class="edt2" value="2" />
</td>
<td>
<button class="edt2">btn 2</button>
</td>
</tr>
</table>
&#13;
使用this context
和
描述:对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。
和
描述:获取当前匹配元素集中每个元素的后代,由选择器,jQuery对象或元素过滤。
$(this)//clicked button
.closest('tr')//get the parent tr
.find('input')//get the input
.val()//get the value
function edt(button) {
alert($(button).closest('tr').find('input').val())
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>
<input class="jml" class="edt1" value="1" />
</td>
<td>
<button class="edt1" onClick="edt(this);">btn 1</button>
</td>
</tr>
<tr>
<td>
<input class="jml" class="edt2" value="2" />
</td>
<td>
<button class="edt2" onClick="edt(this);">btn 2</button>
</td>
</tr>
</table>
&#13;
答案 3 :(得分:0)
ID必须是唯一的,但您的代码可以更好。
首先,您使用dt
作为参数进入函数,但它从未使用过。 (为什么?)
您可以使用它从元素中读取ID并将其提供给您的脚本。检查一下。
function edt(dt){
isi = $("#edt" + dt).val();
alert(isi);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<tr>
<td><input class="jml" id="edt1" value="1"/></td>
<td><button onClick="edt(1);">btn 1</button></td>
</tr>
<tr>
<td><input class="jml" id="edt2" value="2"/></td>
<td><button onClick="edt(2);">btn 2</button></td>
</tr>
&#13;