循环上课。获取输入和跨度值

时间:2011-06-16 20:14:50

标签: jquery loops input html-lists html

当我认为我在击败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),例如。

我们正在使用他们认为合适的第三方内容。需要能够将其改变为我们需要的东西。

再次感谢您的帮助。欣赏它。

3 个答案:

答案 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;
    } 
});

示例:http://jsfiddle.net/niklasvh/XnAp3/

答案 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元素设置为您想要的值。