Я пишу приложение «встроенный переводчик» для использования с облачной вычислительной платформой для расширения не поддерживаемых языков. Большинство из них использует jQuery, чтобы найти текстовое значение, заменить его на перевод, а затем добавить элемент с тегом span, который имеет уникальный идентификатор, который будет использоваться в другом месте приложения. Однако возникает проблема, когда есть более одного элемента, скажем, которые имеют то же самое значение для перевода (согласованные элементы). Что происходит в рассматриваемой функции, так это то, что она помещает все согласованные элементы в один и тот же диапазон, принимая второй, третий, четвертый и т. Д. Из своих родительских тегов. Мой код довольно много как в этом примере:jQuery: Предоставление каждому согласованному элементу уникального идентификатора
<script src='jquery-1.4.2.js'></script>
<script>
jQuery.noConflict();
var uniqueID='asdfjkl';
jQuery(window).ready(function() {
var myQ1 = jQuery("input[id~=test1]");
myClone=myQ1.clone();
myClone.val('Replaced this button');
myQ1.replaceWith('<span id='+uniqueID+'></span>');
jQuery('#'+uniqueID).append(myClone);
});
</script>
<table>
<tr><td>
<input id='test1' type='button' value="I'm a button!"></input>
<input id='test2' type='button' value="And so am I"></input>
</tr></td>
<tr><td>
<input id='test1' type='button' value="I'm a button!"></input>
</tr></td>
</table>
В качестве обходного пути, я экспериментировал с помощью цикла, чтобы создать класс для каждого пролета, не поднимаясь с приращением до JQuery ("вход [идентификатор ~ = test1] ") .length, но я не могу заставить ничего работать, чтобы работать. Есть ли способ дать каждому согласованному элементу уникальный идентификатор? Моя беглость в jQuery ставится на тест!
Благодарим за любую помощь заранее.
Aaron
Ваш оригинальный HTML не является действительным. У вас не может быть двух элементов, использующих один и тот же идентификатор. Они могут иметь одно и то же имя, но не одинаковые идентификаторы. – tvanfosson