Когда скрытый ввод имеет значение, содержащее буквы "LO", я хочу заменить кнопку внутри формы каким-либо другим html.
HTML:
<input type="hidden" name="LO123456" id="hiddenCode" value="LO123456" />
<input type="text" name="quantity" id="formProductQuantity" value="1" />
<a class="button green" href="#" onclick="$('#form').submit(); return false;">Add to cart</a>
Таким образом, в приведенном выше примере скрытое поле имеет в нем "LO", поэтому как я могу заменить кнопку
<a class="button green" href="some.html">More information</a>
То, что я пробовал:
if ($( "input[value*='LO']" ).find('.button').replaceWith('<a class="button green" href="some.html">More information</a>'));
Это не работает, потому что он заменяет кнопки без "LO" в скрытом поле.
Любая помощь очень ценится!
ОБНОВЛЕНО
Я обновил код, потому что есть другое поле ввода, о котором я не упоминал!
.find('.button')
в .next('.button')
.find()
= найти элемент внутри этого элемента
.next()
= найти элемент рядом с этим элементом
Используйте $( "input[value^='LO']")
(ввод начинается с LO
)
Вам не нужно использовать if else statement
Добавить :hidden
для большей фокусировки
или используйте свой идентификатор ввода hiddenCode
(если вы уверены, что это уникальный идентификатор)
В заключение :
var newButton = '<a class="button green" href="some.html">More information</a>';
$("input:hidden[value^='LO']").next('.button').replaceWith(newButton);
Использование идентификатора
var newButton = '<a class="button green" href="some.html">More information</a>';
$("#hiddenCode").next('.button').replaceWith(newButton);
.next().next('.button')
? @JaapVermoolen
Оператор if не требуется: if ($ ("input [value * = 'LO']")....
Вам нужно следующее вместо поиска:
$( "input[value^='LO']" ).next('.button').replaceWith('<a class="button green" href="some.html">More information</a>');
Следующий поиск следующего брата, поиск поисков потомков.
Используйте что-то вроде:
var v = $('#hiddenCode').val();
if (v && v.indexOf('LO') > -1) {
$('.button').replaceWith('<a class="button green" href="some.html">More information</a>');
}
if
- это не оператор.