.clone()
не усекает ваш выбор, вы:.Когда вы сделаете это:
new_option.find('label').text('Red');
Вы перезапись HTML структуру label
элемента, который выглядит следующим образом:
<label for="sky-color-2" data-theme="c" class="ui-btn ui-btn-icon-left ui-radio-off ui-corner-bottom ui-controlgroup-last ui-btn-up-c">
<span class="ui-btn-inner ui-corner-bottom ui-controlgroup-last">
<span class="ui-btn-text">Green</span>
<span class="ui-icon ui-icon-radio-off ui-icon-shadow"></span>
</span>
</label>
После того как вы возиться с функцией .text()
она выглядит следующим образом:
<label for="sky-color-2" data-theme="c" class="ui-btn ui-btn-icon-left ui-radio-off ui-corner-bottom ui-controlgroup-last ui-btn-up-c">Red</label>
Исправление составляет цель .ui-btn-text
элемент и изменить его текст:
new_option.find('.ui-btn-text').text('Red');
Вот обновленная версия вашего JSFiddle: http://jsfiddle.net/aSKBW/13/
Не чувствовать себя слишком плохо, это очень распространенная ошибка, когда привыкают к JQuery Mobile и как он добавляет столько структуру в DOM.
Вместо того, чтобы клонировать его, создайте новый и инициализируйте его. Я бы опубликовал это как ответ, но я не знаю, как его инициализировать сразу же. –
Да, это было бы намного лучше, но я больше беспокоюсь о том, что именно происходит. – Ehtesham
Почему вы думаете, что он не клонирует потомков? Ваш '.find ('label')', похоже, работает и меняет 'console.log' для '[0] .outerHTML' показывает полный контент в клоне. –