Actualización 2
yo estaba trabajando en un violín para otra pregunta y me di cuenta de que el marcado con 1.0b2 jQuery Mobile es un poco diferente:
<div data-theme="b" class="ui-btn ui-btn-corner-all ui-shadow ui-btn-down-b ui-btn-hover-b" aria-disabled="false">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">Show Submit Button</span>
</span>
<input type="button" name="answer" id="myButton" data-theme="b" data-answer="4" value="next" class="ui-btn-hidden" aria-disabled="false">
</div>
Con esta marcado, que había deberá hacer lo siguiente para cambiar el texto del botón:
$('#myButton').prev('span').find('span.ui-btn-text').text("Next Text");
actualización
crédito a quien crédito merece - Como resultado, la respuesta de @ naugtur a esta pregunta, lo que hizo exactamente el mismo punto que mi edición, fue publicada antes llegué a corregir mi respuesta original.
no estoy muy familiarizado con jQuery Mobile y el hecho de que estaba utilizando un <input>
para el botón no se registró cuando inicialmente respondí. Aquí está mi respuesta actualizada con un ejemplo de trabajo que muestra cómo podrías hacerlo.
En el caso de un <input type="button" />
, jQuery Mobile parece ocultar el elemento <input>
y crea un nuevo elemento <a>
con el estilo que se parecen al botón. Es por eso que cuando intenta obtener y establecer el texto utilizando el ID del <input>
como selector, no funciona, ya que <span>
no tiene el texto que ve en la pantalla. El marcado generado ve algo como esto
<!-- This 'a' button is added dynamically by jQuery Mobile, for the input element that follows it -->
<a role="button" href="#" data-theme="c" class="ui-btn ui-btn-corner-all ui-shadow ui-btn-up-c">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">My Value</span>
</span>
</a>
<input type="button" data-role="button" value="My Value" id="myButton" name="answer" class="ui-btn-hidden ui-btn ui-btn-up-c ui-btn-corner-all ui-shadow" tabindex="-1" data-theme="c">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text"></span>
</span>
</input>
No he probado a cabo suficientes ejemplos para estar completamente seguros, pero esto debería funcionar
$("#myButton").prev('a').find('span.ui-btn-text').text("New Text")
Aquí es a working example showing how to change text for both types of buttons (<a>
y <input type="button">
).
yo no recomendaría el uso de esta <a>
más botones si puede evitarlo, aunque ya no hay una id
y mi enfoque, al menos, se basa en el hecho de que el <a>
correspondiente al <input type="button" />
aparece justo antes de la <input>
elemento.
He actualizado mi respuesta, estaba trabajando bajo la suposición incorrecta de que el marcado sería similar, no lo es y proporcioné un ejemplo práctico de cómo puede lograr esto con los botones 'input'. –
Responda la respuesta correcta aquí: http://stackoverflow.com/a/7279843/61821 –