首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery在另一个输入中发送多个值

jQuery在另一个输入中发送多个值
EN

Stack Overflow用户
提问于 2016-03-25 14:29:08
回答 3查看 925关注 0票数 0

我创建了一个循环来显示商店的身份证。

卡片的内容包含关于商店的信息(电话,地址.)。卡片有一个选择商店的按钮,我想把多个值发送到另一个input

代码语言:javascript
复制
<li>

<span onclick="doSomething()" value="3">Select this Shop</span>
<input class="info-1" type="hidden" value="footlocker">
<input class="info-2" type="hidden" value="13 street 1000">
<input class="info-3" type="hidden" value="new york city">
<input class="info-4" type="hidden" value="00 22 55 66 33">
<input class="info-5" type="hidden" value="ID shop 6">

</li>


<li>
<span onclick="doSomething()" value="5">Select this Shop</span><br/>
<input class="info-1" type="hidden" value="Mc Donald">
<input class="info-2" type="hidden" value="256 avenue clint">
<input class="info-3" type="hidden" value="San Diego">
<input class="info-4" type="hidden" value="31 64 21 54 12">
<input class="info-5" type="hidden" value="ID shop 34">
</li>
...

信息是在这里输入的。

代码语言:javascript
复制
<input id="info-1" value="">
<input id="info-2" value="">
<input id="info-3" value="">
<input id="info-4" value="">
<input id="info-5" value="">

我的jQuery

代码语言:javascript
复制
function doSomething(){


    var text= $('.info-1').attr('value');
    $( "#info-1" ).val(text);

    var text =  $('.info-2').attr('value');
    $( "#info-1" ).val(text);

    var text =  $('.info-3').attr('value');
    $( "#info-1" ).val(text);

    var text =  $('.info-4').attr('value');
    $( "#info-1" ).val(text);

    var text =  $('.info-5').attr('value');
    $( "#info-1" ).val(text);
}

此代码不工作,如果工作正常,它只发送第一个商店的值:(。

谢谢你的帮忙

https://jsfiddle.net/zjo1y4vv/3/

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-25 14:44:59

JSFIDDLE演示

Html应该如下所示

代码语言:javascript
复制
<li>
  <span onclick="doSomething(this)" value="3">Select this Shop</span>
  <input class="info-1" type="hidden" value="footlocker">
  <input class="info-2" type="hidden" value="13 street 1000">
  <input class="info-3" type="hidden" value="new york city">
  <input class="info-4" type="hidden" value="00 22 55 66 33">
  <input class="info-5" type="hidden" value="ID shop 6">
</li>
<li>
  <span onclick="doSomething(this)" value="5">Select this Shop</span>
  <br/>
  <input class="info-1" type="hidden" value="Mc Donald">
  <input class="info-2" type="hidden" value="256 avenue clint">
  <input class="info-3" type="hidden" value="San Diego">
  <input class="info-4" type="hidden" value="31 64 21 54 12">
  <input class="info-5" type="hidden" value="ID shop 34">
</li>
<br/> 
My container where is send the value :
<input id="info-1" value="">
<input id="info-2" value="">
<input id="info-3" value="">
<input id="info-4" value="">
<input id="info-5" value="">

JAVASCRIPT

代码语言:javascript
复制
  function doSomething(el) {
    var infomag = $(el).siblings('.info-1').val();
    $("#info-1").val(infomag);

    var text2 = $(el).siblings('.info-2').val();
    $("#info-2").val(text2);

    var text3 = $(el).siblings('.info-3').val();
    $("#info-3").val(text3);

    var text4 = $(el).siblings('.info-4').val();
    $("#info-4").val(text4);

    var text5 = $(el).siblings('.info-5').val();
    $("#info-5").val(text5);
  }

你的小提琴出了很多问题。

  1. doSomething(this) -在html中添加一个参数this
  2. 您有两次id info-4
  3. 使用.siblings查找文本
票数 0
EN

Stack Overflow用户

发布于 2016-03-25 14:46:53

您可以尝试这样的方法:(如果添加其他信息,您可以分解代码)

代码语言:javascript
复制
$(".span").click(function(e){

    var infomag = $(this).siblings('.info-1').attr('value');
    $("#info-1").val(infomag);
    
    var text =  $(this).siblings('.info-2').attr('value');
    $("#info-2").val(text);
    
    text =  $(this).siblings('.info-3').attr('value');
    $("#info-3").val(text);
    
    text =  $(this).siblings('.info-4').attr('value');
    $("#info-4").val(text);
    
    text =  $(this).siblings('.info-5').attr('value');
    $("#info-5").val(text);
})
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li>

<span class="span" value="3">Select this Shop</span>
<input class="info-1" type="hidden" value="footlocker">
<input class="info-2" type="hidden" value="13 street 1000">
<input class="info-3" type="hidden" value="new york city">
<input class="info-4" type="hidden" value="00 22 55 66 33">
<input class="info-5" type="hidden" value="ID shop 6">

</li>


<li>
<span class="span"  value="5">Select this Shop</span><br/>
<input class="info-1" type="hidden" value="Mc Donald">
<input class="info-2" type="hidden" value="256 avenue clint">
<input class="info-3" type="hidden" value="San Diego">
<input class="info-4" type="hidden" value="31 64 21 54 12">
<input class="info-5" type="hidden" value="ID shop 34">

<br/>
My container where is send the value :<br/>

<input id="info-1" value=""><br/>
<input id="info-2" value=""><br/>
<input id="info-3" value=""><br/>
<input id="info-4" value=""><br/>
<input id="info-5" value=""><br/>

票数 1
EN

Stack Overflow用户

发布于 2016-03-25 14:40:55

一些提示和修正:

  1. $('.info-1')将选择多个元素。尝试在正确的上下文中获得唯一的一个元素,例如使用$(this).next('.info-1')$(this).parent().find('.info-1')
  2. doSomething()函数中,您只设置了#info-1的值,而不是#info-2的值等等。
  3. 要获得输入的值,请使用.val()而不是.attr('value')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36221870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档