循环遍历list元素并在jquery中将文本添加到输入值

时间:2015-08-18 11:38:50

标签: javascript jquery

Basicaly我想循环并从第一个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="">

3 个答案:

答案 0 :(得分:1)

你可以这样使用

<filter-mapping>
    <filter-name>SimplePageCachingFilter</filter-name>
    <url-pattern>/login/*</url-pattern>
</filter-mapping>

Fiddle

答案 1 :(得分:0)

由于您可以在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>

您必须检查以查看值。

答案 2 :(得分:0)

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

。每个来自Jquery发送索引和值作为参数,你可以使用.eq(nb)来获取nb元素。