Вы не можете установить «значение» элемента таким образом. Используйте ".val ()":
$(this).val("Delete row");
Начиная с jQuery 1.6, метод .attr () строго (ну, после 1.6.1, почти строго) имеет дело с фактическими атрибутами , в отличие от properties как "value" для элемента <input>
. Для установки свойств вы можете использовать «.prop ()» или, в случае свойства «value», в частности, «.val ()».
Изменение, внесенное в 1.6.1, должно было облегчить строгость в случае нескольких логических атрибутов / свойств, таких как «отмечено» и «выбрано». По моему личному опыту, безопаснее придерживаться «prop ()» даже с такими, особенно когда имеешь дело с переключателями.
(Различие между «атрибутом» и «свойством» кажется тонким, но оно действительно имеет значение, особенно в IE. «Атрибут» - это нечто, хранящееся в узле DOM на его внутренней карте, доступ к которой осуществляется через «setAttribute ()» и Методы "getAttribute ()". "Свойство" узла DOM аналогично любому другому свойству объекта JavaScript. Итак, чтобы получить / установить значение узла <input>
DOM, необходимо обратиться к свойству "value", вы используете ".prop ()" или ".val ()" для манипулирования им с помощью jQuery. Другими важными свойствами являются "src", "href", "className", "id", "name", "type", " tagName "и т. д.)
Также вы можете подумать о добавлении строк таблицы к ближайшему элементу <tbody>
вместо <table>
.