繁体   English   中英

遍历列表元素并将文本添加到jQuery中的输入值

[英]Loop through list element and add text to the input value in jquery

基本上我想遍历并从第一个ul获取文本,然后将其附加到.second ul的输入值

<ul class="first">
    <li>
        <p>test one </p>
    </li>
</ul>

<ul class="second">
    <li>
        <input type="radio" name="wis_con_q10_q3" value="Yes">
        <input type="radio" name="wis_con_q10_q3" value="No" checked="">
    </li>
</ul>

<ul class="first">
    <li>
        <p>text two </p>
    </li>
</ul>
<ul class="second">
    <li>
        <input type="radio" name="wis_con_q10_q4" value="Yes">
        <input type="radio" name="wis_con_q10_q4" value="No" checked="">
    </li>
</ul>

我试图以这种方式应用,但无法正常工作

$("ul.first li p").each(function () {
    $("ul.second li input").val($("ul.second li input").val() + "_" + $(this).text());
});

这就是我想要实现的

<input type="radio" name="wis_con_q10_q4" value="Yes_text two ">
<input type="radio" name="wis_con_q10_q4" value="No_text two " checked="">

你可以这样使用

$(".first").each(function () {
    var radio = $(this).next().find("input[type='radio']");
    var value=$(this).find("p").text();
    radio.each(function(){
        $(this).val($(this).val() + "_"+ value   );

    });
});

小提琴

由于您可以在jquery的.val(fn)方法中传递函数以返回值,因此我们可以使用该函数来获得所需的输出。 每当您在其中使用函数时,都必须使用return关键字返回值。

用这个:

$("input[type='radio']").val(function(){
    return this.value + '_' + $(this).closest('ul').prev('ul').find('p').text().trim();
});

 $("input[type='radio']").val(function() { return this.value + '_' + $(this).closest('ul').prev('ul').find('p').text().trim(); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul class="first"> <li> <p>test one</p> </li> </ul> <ul class="second"> <li> <input type="radio" name="wis_con_q10_q3" value="Yes"> <input type="radio" name="wis_con_q10_q3" value="No" checked=""> </li> </ul> <ul class="first"> <li> <p>text tow</p> </li> </ul> <ul class="second"> <li> <input type="radio" name="wis_con_q10_q4" value="Yes"> <input type="radio" name="wis_con_q10_q4" value="No" checked=""> </li> </ul> 

您必须检查以查看值。

$("ul.first li p").each(function (index,val) {
    $("ul.second li input").eq(index).val($("ul.second li input").val() + "_" + $(this).text());
});

jQuery中的.each将索引和值作为参数发送,可以将其与.eq(nb)一起使用以获取nb元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM