Если я посмотрю на .qq-upload-button
в инспекторе DOM моего браузера, оно будет выглядеть так:
<div class="qq-upload-button" style="…">
Upload a file<input multiple="multiple" type="file" name="file" style="…">
</div>
У него два дочерних элемента: текстовый узел с надписью «Загрузить файл» и входной файл, содержащий файлы для загрузки.
Когда вы вызываете .text()
на .qq-upload-button
, его содержимое (текст вместе с вводом) полностью заменяется.
jQuery (насколько я знаю) не имеет способа манипулировать текстовыми узлами. Но вы можете смело изменять текст кнопки следующим образом:
$('.qq-upload-button').contents(':first').get(0).nodeValue = "…";
Или меньше JQuerily:
$('.qq-upload-button')[0].firstChild.nodeValue = "…";
Другой вариант - указать текст кнопки при создании FileUploader. Параметр template
недокументирован, но работает в текущей версии:
new qq.FileUploader({
template: '<div class="qq-uploader">' +
'<div class="qq-upload-drop-area"><span>Your text here</span></div>' +
'<div class="qq-upload-button">Your text here</div>' +
'<ul class="qq-upload-list"></ul>' +
'</div>',
});
(Я получил шаблон по умолчанию из источника плагина для загрузки файлов )