我有以下html
<tr class="editorRow">
<td class="emailRow">
<input id="EmailSuccessList_0"
name="EmailSuccessList[0]"
type="text" value="asdf@lib.com">
</td>
<td>
<button type="button" href="#"
class="deleteEmailRow button sexybutton "
name="asdf@lib.com">delete</button>
</td>
</tr>
我有以下Jquery(whcih有效),需要一些帮助选择器和/或方法来访问/更改用户输入的button
名称。这对我来说似乎非常笨拙。
$('.emailRow input').live('keyup', function (e) {
var target = this;
var currentVal = $(this).val();
$(target).parent().parent().find('button').attr('name', currentVal)
});
答案 0 :(得分:1)
这是我在Jquery API搜索之后到目前为止所提出的最好的...
$(target).closest('tr').find('button').attr('name', currentVal)
答案 1 :(得分:1)
如果您有动态构建的表,则可以使用委托:
$("table").delegate(".editorRow button").click(function(){
或只是常规选择器
$(".editorRow button").click(function(){
但每种方式都可以轻松找到电子邮件
var email = $(this).closest("tr").find("input:text").val();
// show your dialog
});
我无法想到您需要将按钮名称与文本框值同步的一个原因,因为您已经拥有它并且可以简单地找到它。
答案 2 :(得分:0)
$('#deleteEmailRow').attr('name', currentVal);
我想你在技术上甚至可以像这样替换currentVal
:
$('#deleteEmailRow').attr('name', $(this).val());
答案 3 :(得分:0)
这个HTML是由某个引擎生成的吗?像asp,asp.net,asp.net mvc或类似的Java或其他平台(我是.net家伙:))?如果是这样,您可以在生成按钮时生成有意义的ID,就像生成输入ID一样。之后,您可以轻松地从输入的keyup处理程序中引用该按钮。