当我认为我在击败JQuery时,我感到难过。
<div class="productAttributeValue">
<div class="productOptionViewRectangle">
<ul>
<li class="option">
<label for="dca37e79338c28f796c3bdd4e88492f2">
<input
type="radio"
class="validation"
name="attribute[52]"
value="97"
id="dca37e79338c28f796c3bdd4e88492f2"
/>
<span class="name">25 ML</span>
</label>
</li>
<li class="option">
<label for="b6cc5db62235218dade2cbe8dcdfdad4">
<input
type="radio"
class="validation"
name="attribute[52]"
value="98"
id="b6cc5db62235218dade2cbe8dcdfdad4"
/>
<span class="name">50 ML</span>
</label>
</li>
</ul>
</div>
</div>
我需要循环遍历li并获取输入的值并更改该li中class =“name”的文本。如果value = 97,则该范围的文本应为50 ML(RRP $ 69.00),例如。
我们正在使用他们认为合适的第三方内容。需要能够将其改变为我们需要的东西。
再次感谢您的帮助。欣赏它。
答案 0 :(得分:3)
您可以使用以下代码行完成此操作:
$('.option input[value=97]').next('.name').text('50 ML (RRP $69.00)');
为了更容易添加更多选项,请创建一个阵列来执行相同的操作:
var d = [
{'value':'97','text':'50 ML (RRP $69.00)'},
{'value':'[your value]','text':'[your text]'}
];
$(d).each(function() {
$('.option input[value='+this.value+']').next('.name').text(this.text);
});
答案 1 :(得分:0)
只需使用$.each()
浏览它们,然后使用find()
找到您需要的元素:
$('.option').each(function(i){
var t = $(this).find('.name');
switch ($(this).find('input').val()){
case "97":
t.text(" 50 ML (RRP $69.00)");
break;
case "98":
t.text(" text for 98...");
break;
}
});
答案 2 :(得分:0)
这应该非常简单,使用JQuery的每个函数。你的代码看起来像这样:
$("li.option").each(function() {
var val = $(this).children("input").val();
//Put your logic here to decide what the span should say
var name = "50 ML (RRP $69.00)";//Just putting this in for the example
$(this).children("span.name").val(name);
});
这将循环遍历每个li.options,获取其子输入元素的值,然后将其子span.name元素设置为您想要的值。