首页 文章

循环上课 . 获取输入和 Span 值

提问于
浏览
0

就在我认为我在击败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 回答

  • 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);
    });
    
  • 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元素设置为您想要的值 .

  • 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/

相关问题