javascript - 一个标签去重的问题

查看:74
本文介绍了javascript - 一个标签去重的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<input class="clvalue" value="3,3,2," name="server">

<input type="button" class="check">

疑问:怎么控制点击 把value中出只要出现两次的就干掉这个数字!!!

 诸如 3,3,2, 然后只剩 2
 诸如 2,3,2, 然后只剩 3
 诸如 3,2,1, 然后 1,2,3
 
 (顺序排,去逗号,去重)
 把正确的结果返回value??

解决方案

<input class="clvalue" value="3,3,2," name="server">
<button id="j-button" type="button" class="check">Click</button>
<!-- 我给 button 挂个 id="j-button" 来方便获取元素 -->

document.getElementById('j-button').addEventListener('click', function() {
  var input = document.querySelector('input[name="server"]');
  var value = input.value;
  
  // 按照 , 来分割字符串,顺便移除前后空格
  var result = value.split(/\s*,\s*/).filter(function(item) {
    if (item) {
      var index = value.indexOf(item); // 获取字符在字符串中的位置
      // 从字符串结束的位置向后检索,找不到则表示是唯一的
      return value.indexOf(item, index + item.length) === -1 ? true : false;
    } else {
      return false;
    }
  }).sort(); // 最后排个序
  
  input.value = result.join(',');
});

这篇关于javascript - 一个标签去重的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆