首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery在div中获得多个值

JQuery在div中获得多个值
EN

Stack Overflow用户
提问于 2015-07-10 13:50:32
回答 5查看 6.3K关注 0票数 0

我需要得到不同的数字。我有18个选择。当我选择一个div时,div的类通过JS代码变成.sm-select。我可以选择最多4个div,并且我希望得到div的值,例如:"value 1,value 4,value 6,value 12",并将它们存储在一个隐藏的输入字段中。这些值是文本字符串。

但是,目前在我的代码中使用".attr('value')“时,我只有第一个代码,并且在输入类型文本中显示它来测试它。

有人能教我怎么做吗?谢谢。

我的HTML:

代码语言:javascript
复制
<div class="col-xs-6 sm-6">
    <div class="decale sm-envies envie" value="Expo">
        <p>Expo</p>
    </div>
</div>
<div class="col-xs-6 sm-6">
    <div class="decale sm-envies envie" value="Extrême">
        <p>Extrême</p>
    </div>
</div>
<div class="col-xs-6 sm-6">
    <div class="decale sm-envies envie" value="Spa">
        <p>Spa</p>
    </div>
</div>
<div class="col-xs-6 sm-6">
    <div class="decale sm-envies envie" value="Nature">
        <p>Nature</p>
    </div>
</div>
<div class="col-md-12 whichenvie">
    <input type="text">
</div>

我的JS:

代码语言:javascript
复制
$(function(){
    $('.sm-envies').each(function() {
        $(this).click(function (){
            var Envie = $('.sm-select').attr('value');
            $( ".whichenvie>input" ).val(Envie);
        });
    });
});
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-07-10 14:01:56

调用attr对象上的jQuery函数将只返回选择器找到的第一个元素的属性值。要获得所有元素的属性值,您必须使用each函数迭代对象:

代码语言:javascript
复制
$(function () {
    $('.sm-envies').click(function () {
        var Envie = '';
        $('.sm-select').each(function () {
            Envie += $(this).attr('value') + ';';
        })
        $(".whichenvie>input").val(Envie);
    });
});
票数 0
EN

Stack Overflow用户

发布于 2015-07-10 13:57:21

在html中,您不能创建自定义属性,除非您用“data-”(在本例中是“data-value”)对它们进行添加。如果元素是输入而不是div,则可以使用“value”。

代码语言:javascript
复制
$(function(){
  // this binds the click event to all divs of class .sm-envies
  // no need to do an each thanks to jquery
  $('.sm-envies').on('click', function(){
    var envie = $(this).data('value');
    $(".whichenvie > input").val(envie);
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-xs-6 sm-6">
  <div class="decale sm-envies envie" data-value="Expo">
    <p>Expo</p>
  </div>
</div>
<div class="col-xs-6 sm-6">
  <div class="decale sm-envies envie" data-value="Extrême">
    <p>Extrême</p>
  </div>
</div>
<div class="col-xs-6 sm-6">
  <div class="decale sm-envies envie" data-value="Spa">
    <p>Spa</p>
  </div>
</div>
<div class="col-xs-6 sm-6">
  <div class="decale sm-envies envie" data-value="Nature">
    <p>Nature</p>
  </div>
</div>
<div class="col-md-12 whichenvie">
  <input type="text">
</div>

票数 0
EN

Stack Overflow用户

发布于 2015-07-10 13:58:03

这个JS代码应该可以工作:

代码语言:javascript
复制
$('.sm-envies').on('click', function (e){
    $( ".whichenvie>input" ).val($( ".whichenvie>input" ).val() + ', ' + $(e.target).text());
});

请参阅:小提琴

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31342493

复制
相关文章

相似问题

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