0

当隐藏输入的值包含字母“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”的按钮。

非常感谢任何帮助!

更新

我已经更新了代码,因为还有一个我没有提到的输入字段!

4

3 回答 3

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);

使用身份证

var newButton = '<a class="button green" href="some.html">More information</a>';
$("#hiddenCode").next('.button').replaceWith(newButton);
于 2013-10-08T19:24:30.030 回答
0

使用类似的东西:

var v = $('#hiddenCode').val();
if (v && v.indexOf('LO') > -1) {
  $('.button').replaceWith('<a class="button green" href="some.html">More information</a>');
}
于 2013-10-08T19:25:49.613 回答
0

if ($( "input[value*='LO']" )....

您需要 next 而不是 find:

$( "input[value^='LO']" ).next('.button').replaceWith('<a class="button green" href="some.html">More information</a>');

Next 搜索下一个兄弟,find 搜索后代。

于 2013-10-08T19:29:45.100 回答