JQuery найти и заменить строку внутри переменной - PullRequest
0 голосов
/ 19 февраля 2012

Я искал целую вечность и, похоже, не могу найти ответ на то, что я считаю довольно простым вопросом. Я использовал .clone(), чтобы сделать копию li, содержащую несколько полей формы, а затем вставляю ее в начало формы. Это отлично работает.

Я пытаюсь найти и заменить все экземпляры ROWID на переменную i

<ul class="form">
<li class="hide">
    <ol class="form">
        <li><label for="cat_id_ROWID">Category:</label>
            <select id="cat_id_ROWID" name="cat_id[]">
                <option>...options...</option>
            </select>
        </li>
        <li>
            <label for="value_ROWID">Value:</label>
            <input id="value_ROWID" name="value[]">
        </li>
        <li>
            <label for="description_ROWID">Description:</label>
            <textarea id="description_ROWID" name="description[]"></textarea>
        </li>
    </ol>
</li>
</ul>

Любой мой jquery:

 var newitem = $('li.hide').eq(0).clone();
 newitem.removeClass('hide').addClass('row');
 $(newitem).insertBefore('ul.form li:first');

Я пытаюсь сделать что-то вроде $(newitem).replace('ROWID',i);, но это не работает. Любая помощь будет оценена! Спасибо.

Ответы [ 2 ]

3 голосов
/ 19 февраля 2012

Ваша переменная newitem является объектом jQuery, а не строкой, поэтому простой .replace не будет работать. Вам нужно будет выбрать нужные элементы в пределах newitem и изменить атрибуты (которые являются строками) индивидуально.

var $newitem = $('li.hide').eq(0).clone();
$('[for$="ROWID"]', $newitem).each(function () {
    $(this).attr('for', $(this).attr('for').replace('ROWID', i));
});
$('[id$="ROWID"]', $newitem).each(function () {
    $(this).attr('id', $(this).attr('id').replace('ROWID', i));
});
$newitem.removeClass('hide').addClass('row');
$newitem.insertBefore('ul.form li:first');
2 голосов
/ 19 февраля 2012

newitem - это li, а не атрибут. Попробуйте что-то вроде этого:

newitem.html(newitem.html().replace("ROWID",i));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...