简体   繁体   English

如何使用javascript在单个变量中添加多个值?

[英]How to add multiple values in single variable using javascript?

How can I get multiple values in a single variable like this:如何在单个变量中获取多个值,如下所示:

1, 2, 3, 4, 5

 $('.icon').click(function() { var totalWishlist; $(this).toggleClass('active'); totalWishlist += $(this).attr('data-pid'); console.log(totalWishlist); });
 .active{color:red;}
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="icon" data-pid="1">icon 1</div> <div class="icon" data-pid="2">icon 2</div> <div class="icon" data-pid="3">icon 3</div> <div class="icon" data-pid="4">icon 4</div>

Why am I getting undefined ?为什么我得到undefined

You're getting undefined1 etc. because you don't declare totalWishlist with a value, so by default it's undefined.你得到undefined1等,因为你没有用值声明totalWishlist ,所以默认情况下它是未定义的。 To fix that, define it as an empty string outside of the click handler:要解决这个问题,请将其定义为点击处理程序之外的空字符串:

var totalWishlist = '';

However , it would make far more sense to use an array and push() to it.但是,使用数组和push()会更有意义。 This is far easier to modify.这更容易修改。 If you want to retrieve a string from that array you can use join(', ') , like this:如果要从该数组中检索字符串,可以使用join(', ') ,如下所示:

 var totalWishlist = []; $('.icon').click(function() { totalWishlist.push($(this).data('pid')); console.log(totalWishlist.join(', ')); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="icon" data-pid="1">icon 1</div> <div class="icon" data-pid="2">icon 2</div> <div class="icon" data-pid="3">icon 3</div> <div class="icon" data-pid="4">icon 4</div>

Use an array and move it outside of your function .使用数组并将其移到函数之外 If you want to add the items only once, use includes to check if the item is already in the array and skip it:如果您只想添加项目一次,请使用includes检查项目是否已经在数组中并跳过它:

 const totalWishlist = []; $('.icon').click(function() { const pid = $(this).attr('data-pid'); if (!totalWishlist.includes(pid)) { totalWishlist.push(pid); } console.log(...totalWishlist); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="icon" data-pid="1">icon 1</div> <div class="icon" data-pid="2">icon 2</div> <div class="icon" data-pid="3">icon 3</div> <div class="icon" data-pid="4">icon 4</div>

Make the variable an string And define it outside the function.使变量成为字符串并在函数外定义它。 Make it global.让它全球化。

 var totalWishlist=""; $('.icon').click(function() { totalWishlist+=$(this).attr('data-pid')+ " "; console.log(totalWishlist); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="icon" data-pid="1">icon 1</div> <div class="icon" data-pid="2">icon 2</div> <div class="icon" data-pid="3">icon 3</div> <div class="icon" data-pid="4">icon 4</div>

Or make it an array或者让它成为一个数组

 var totalWishlist=[]; $('.icon').click(function() { totalWishlist.push($(this).attr('data-pid')); console.log(totalWishlist); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="icon" data-pid="1">icon 1</div> <div class="icon" data-pid="2">icon 2</div> <div class="icon" data-pid="3">icon 3</div> <div class="icon" data-pid="4">icon 4</div>

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

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