Я пытаюсь заменить ряд атрибутов «для» меток на основе их текущего содержимого.Как заменить часть значения атрибутов для набора элементов в jQuery?
Приложение использует AJAX для добавления товара в счет-фактуру без обновления страницы. Получив уведомление об успешном добавлении элемента, мой скрипт должен заменить все метки в форме, чей атрибут «для» заканчивается на «-new» с тем же атрибутом минус «-ново» и добавлением («-» + itemValue) где itemValue - это идентификатор элемента добавленного счета.
Я знаю, как выбрать все метки, которые я хочу сразу изменить:
jQuery('label[for$=new]')
Я знаю, как получить их «за» атрибута:
jQuery('label[for$=new]').attr('for')
Я попробовал JavaScript метод замены :
jQuery('label[for$=new]').attr('for').replace(/-new/,itemValue)
Но, кажется, для выбора атрибута «для» каждой метки, замените текст и передайте r заменяемый текст назад (ни к чему), так как я не знаю, как идентифицировать метки, у которых есть атрибут «для», который я хочу заменить.
Вот некоторые примеры HTML:
<form id="InvoiceItemsForm-1" action="<?=$_SERVER['PHP_SELF'];?>" method="post" name="InvoiceItemsForm-1" onsubmit="return false">
<div id="InvoiceItem-new-1" class="InvoiceItem">
<label for="InvoiceItemNumber-new">New Invoice Item Number: </label>
<input id="InvoiceItemNumber-new" class="InvoiceItemNumber" type="text" value="" name="InvoiceItemNumber-new">
<label for="InvoiceItemDescription-new">Item Description: </label>
<input id="InvoiceItemDescription-new" class="InvoiceItemDescription" type="text" value="" name="InvoiceItemDescription-new">
<label for="InvoiceItemAmount-new">Item Amount: </label>
<input id="InvoiceItemAmount-new" class="InvoiceItemAmount" type="text" value="" name="InvoiceItemAmount-new">
<input id="addInvoiceItem-1" width="25" type="image" height="25" src="/payapp/images/greenplus.th.png" alt="Add New Invoice Item" onclick="addInvoiceItemButtonPushed(this)" value="invoiceItem">
</div>
<button id="CloseInvoice-1" onclick="closeInvoice(this)" type="button">Close Invoice</button>
</form>
После того, как я получить эту работу, я собираюсь заменить все идентификаторы для всех входов. Та же проблема. Я предполагаю, что решение выглядит примерно так:
jQuery('input[id$=new]').attr('id').replace(/-new/,itemValue)
Я просто не могу понять синтаксис этого.
Это лучший ответ на мои поиски как просили. Все 3 ответа являются действительными методами решения проблемы. – chriv