2017-07-05 39 views
-1

对于下面的代码,当点击按钮时,它应该更新文本的名称。也就是说他的血腥,汗, 但相反,目前是阴性,hellotomsally,suptomsally。 我想知道是否有任何方法来更新名称,同时保持文本嗨,hellop和sup。 非常感谢更新按钮上的输入值点击jquery

$(".ok").on('click', function() { 
 
    var set = $(this).closest('tr').find('.done').val(); 
 
    if (set) { 
 
    $(this).closest('tr').find('.text').each(function() { 
 
     $(this).val($(this).attr("data-value") + set); 
 
    }) 
 
    } 
 
});
<table> 
 
    <tr> 
 

 
    <td> 
 
    <input type="button" value="ok" class="ok"></td> 
 
    <td>done<input type="text" value="sally" class="done" \> </td> 
 
    <td>text1<textarea class="text" data-value="hitom">hitom</textarea> </td> 
 
    <td>text2<textarea class="text" data-value="hellotom">hellotom</textarea> </td> 
 
    <td>text3<textarea class="text" data-value="suptom">suptom</textarea> </td> 
 

 
    </tr> 
 
</table> 
 
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>

+2

这似乎是工作。你可能需要澄清你的问题。 – Difster

+0

您正在使用名称和文字的一切。请使用元素的正确名称。 –

回答

2

你需要改变你的data-value只想要在textarea

$(".ok").on('click', function() { 
 
    var set = $(this).closest('tr').find('.done').val(); 
 
    if (set) { 
 
    $(this).closest('tr').find('.text').each(function() { 
 
     $(this).val($(this).attr("data-value") + set); 
 
    }) 
 
    } 
 
});
<table> 
 
    <tr> 
 

 
    <td> 
 
    <input type="button" value="ok" class="ok"></td> 
 
    <td>done<input type="text" value="sally" class="done" \> </td> 
 
    <td>text1<textarea class="text" data-value="hi">hitom</textarea> </td> 
 
    <td>text2<textarea class="text" data-value="hello">hellotom</textarea> </td> 
 
    <td>text3<textarea class="text" data-value="sup">suptom</textarea> </td> 
 

 
    </tr> 
 
</table> 
 
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>

+0

非常感谢! – epiphany

1

预先设置值的data-value包含错误textareas的值,而实际上是将文本框的值连接到它们。更正data-value属性中的值,即可完成!

$(".ok").on('click', function() { 
 
    var set = $(this).closest('tr').find('.done').val(); 
 
    if (set) { 
 
    $(this).closest('tr').find('.text').each(function() { 
 
     $(this).val($(this).attr("data-value") + set); 
 
    }) 
 
    } 
 
});
<table> 
 
    <tr> 
 

 
    <td> 
 
    <input type="button" value="ok" class="ok"></td> 
 
    <td>done<input type="text" value="sally" class="done" \> </td> 
 
    <td>text1<textarea class="text" data-value="hi">hitom</textarea> </td> 
 
    <td>text2<textarea class="text" data-value="hello">hellotom</textarea> </td> 
 
    <td>text3<textarea class="text" data-value="sup">suptom</textarea> </td> 
 

 
    </tr> 
 
</table> 
 
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>

+0

非常感谢你 – epiphany

1

我删除从每一个字符串 '嗵'。

$(".ok").on('click', function() { 
 
    var set = $(this).closest('tr').find('.done').val(); 
 
    if (set) { 
 
    $(this).closest('tr').find('.text').each(function() { 
 
     $(this).val($(this).attr("data-value").replace(/tom/g,"")+set); 
 
    }) 
 
    } 
 
});
<table> 
 
    <tr> 
 

 
    <td> 
 
    <input type="button" value="ok" class="ok"></td> 
 
    <td>done<input type="text" value="sally" class="done" \> </td> 
 
    <td>text1<textarea class="text" data-value="hitom">hitom</textarea> </td> 
 
    <td>text2<textarea class="text" data-value="hellotom">hellotom</textarea> </td> 
 
    <td>text3<textarea class="text" data-value="suptom">suptom</textarea> </td> 
 

 
    </tr> 
 
</table> 
 
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>

+0

谢谢你的帮助 – epiphany

相关问题