Я пытаюсь заменить индекс элементов формы. У меня есть следующее:JavaScript не заменяет все элементы
var test = "<input name='[1].Id' value='598' type='hidden' /><input name='[1].OrderItemId' value='867' type='hidden' />";
alert(test.replace('[1]', '[2]'));
Я получаю интересные результаты. Первое скрытое поле заменяется вторым игнорируется
т.е. моего ответа что-то вроде этого:
"<input name='[1].Id' value='598' type='hidden' /><input name='[2].OrderItemId' value='867' type='hidden' />"
EDIT:
ОК, спасибо этих методов работали на моем простом примере. Однако на самом деле моя строка немного сложнее. Вот содержание "вар lastRow"
<td>
<a class="deleteAddress" href="#">
<img alt="remove" src="/images/icons/delete_button.gif">
</a></td>
<td class="p-5" width="100">
<input name="[1].Id" value="612" type="hidden">
<input name="[1].OrderItemId" value="868" type="hidden">
<input class="itemAddressQuantity" name="[1].Quantity" value="" type="text">
</td>
<td class="p-5" width="100">
<select name="[1].AddressId"><option value="2">address1</option></select>
</td>
и здесь функция JS
$('#addNewAddress').click(function (event) {
event.preventDefault();
var length = $('.table-item-address tbody').find('tr').length;
var previousLength = length - 1;
var previousIndex = "/\[" + previousLength + "\]/g";
var currentIndex = "[" + length + "]";
var lastRow = $('.table-item-address tbody tr').last();
alert(lastRow.html()); // html is shown above
var newRow = lastRow.html().replace(previousIndex, currentIndex);
$('.table-item-address tr').last().after('<tr>' + newRow + '</tr>');
AdjustValues();
});
спасибо, эта работа на моем примере. Так что да, вы правильно заслуживаете правильного ответа. Надеюсь, вы могли бы быстро взглянуть на редактирование. – frosty
Посмотрите мои правки. Есть более чистый способ сделать это - работая над этим сейчас. –
Не обращайте внимания на мой предыдущий комментарий. Я забыл, что JavaScript не поддерживает lookbehind (и [faking это серьезная головная боль] (http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript))! –