当隐藏输入的值包含字母“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”的按钮。
任何帮助都非常感谢!
已更新
我已经更新了代码,因为还有一个我没有提到的输入字段!
答案 0 :(得分:2)
.find('.button')
至.next('.button')
.find()
=在此元素中找到元素
.next()
=查找此元素旁边的元素
使用$( "input[value^='LO']")
(输入以LO
开头)
您无需使用if else statement
添加:hidden
以获得更多关注
或使用您的输入ID hiddenCode
(如果您确定它是唯一ID)
最后:
var newButton = '<a class="button green" href="some.html">More information</a>';
$("input:hidden[value^='LO']").next('.button').replaceWith(newButton);
使用ID
var newButton = '<a class="button green" href="some.html">More information</a>';
$("#hiddenCode").next('.button').replaceWith(newButton);
答案 1 :(得分:0)
使用类似:
var v = $('#hiddenCode').val();
if (v && v.indexOf('LO') > -1) {
$('.button').replaceWith('<a class="button green" href="some.html">More information</a>');
}
答案 2 :(得分:0)
if:$(“input [value * ='LO']”)....
你需要接下来而不是找到:
$( "input[value^='LO']" ).next('.button').replaceWith('<a class="button green" href="some.html">More information</a>');
接下来搜索下一个兄弟,找到对后代的搜索。