Как получить текст дочерней формы при нажатии на элемент ввода
Это мой HTML макет. У меня есть несколько форм:
<table>
<form>
<tr>
<td id="1">Text1</td>
<td id="2">Text2</td>
<input type="button" value="Submit" id="submit1">
</tr>
</form>
<form>
<tr>
<td id="1">Text1</td>
<td id="2">Text2</td>
<input type="button" value="Submit" id="submit2">
</tr>
</form>
</table>
Я хочу получить текст между <td> и id=1. Вот что я сделал:
$(document).ready(function(){
$('[id*="submit"]').on('click', function() {
console.log($(this).closest("form").find('td first').text());
});
});
3 ответов:
Вот вам и решение
$(document).ready(function(){ $('[id*="submit"]').on('click', function() { console.log($(this).closest('form').find('td').first().text()); }); });<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form> <table> <tr> <td id="form1-1">Form 1: Text1</td> <td id="form1-2">Text2</td> <input type="button" value="Submit" id="submit1"> </tr> </table> </form> <form> <table> <tr> <td id="form2-1">Form 2: Text1</td> <td id="form2-2">Text2</td> <input type="button" value="Submit" id="submit2"> </tr> </table> </form>В вашем коде мало чего можно заметить
idдолжно быть уникальнымformтег должен находиться внеtableНадеюсь, что это будет Вам.
Ты почти угадал! Это должно быть
$(this).closest("form").find('td#1').text()Вы можете не использовать идентификаторы в этом контексте; они должны быть уникальными.
Вы должны быть предпочтительнее class, чем id, мне нравится то, что
Julia Finarovskyсказал,idдолжно быть уникальным.Вы почти угадали, хотя просто забыли
:междуtdиfirstвfind param$(document).ready(function(){ $('[id*="submit"]').on('click', function() { console.log($(this).closest("form").find('td:first').text()); }); });Надеюсь, это поможет.
Comments