Вы уже получили несколько рабочих решений, но я хотел бы предложить еще кое-что. Почему бы вам не добавить класс к элементу кнопки? Что-то вроде:
<div id="div1">
<div class="row" >
<div class="span2" >
<input type="button" class="-row-button" value="" name="btn1"/>
</div>
</div>
</div>
Теперь ваш селектор просто $(".-row-button").val("test hello");
Почему это важно? Ну, обход DOM действительно дорог, и селектор типа $("#div1 [name='btn1']")
намного менее эффективен, чем селектор класса. Это потому, что простой пробел между #div1
и [name='btn1']
означает, что jQuery будет выполнять поиск по всем уровням дочерних элементов управления в #div1
. Это плохо.
Даже если ваша страница действительно мала, вы должны привыкнуть делать такие вещи сейчас . Это изменение сделает ваш код JQuery:
- намного легче следовать и поддерживать позже
- чуть более надежный (потому что класс
.-row-button
может перемещаться из-под #div1
и ваш код jQuery все равно будет работать)
- быстрее