老师,这个效果我做出来了,可是有个地方有遐思问下怎么改进

来源:2-8 自由编程

造梦大师

2019-05-10 21:47:17

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center">
<input style="width:200px" name="btn0" id="btn0" type="button" onclick="check(1)" value="员工列表" >
<input style="width:200px" name="btn0" id="btn1" type="button" onclick="check(2)" value="职位列表">
<input style="width:200px" name="btn0" id="btn2" type="button" onclick="check(3)" value="部门列表">
</div>
<div id="content" align="center"></div>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript">
 
  if(window.XMLHttpRequest){
   xmlhttp=new XMLHttpRequest();
  }else{
   xmlhttp=new ActiveXObject("Microsoft.XMLHttp");
  }
  function check(flag){
   xmlhttp.open("GET","/ajax/employee",true);
   xmlhttp.send();
   
   xmlhttp.onreadystatechange=function(){
    if(xmlhttp.readyState == 4 && xmlhttp.status ==200){
     var text =xmlhttp.responseText;
     console.log(text);
     var json =JSON.parse(text);
     console.log(json);
     var html="";
     for(var i =0 ;i<json.length;i++){
      if(flag ==1 ){
       html=html + json[i].name +"<br/>";
      }else if(flag == 2){
       html=html + json[i].position +"<br/>";
      }else if(flag == 3){
       html=html + json[i].department +"<br/>";
      }
      
     }
     document.getElementById("content").innerHTML = html;
    }
   }
  
 
 }
 
</script>
</body>
</html>

http://img.mukewang.com/climg/5cd580cc0001de0c19201071.jpg员工职位这个地方有重复的怎么去掉

写回答

3回答

芝芝兰兰

2019-05-11

同学你好,看同学取出json时的结构,json中存储的集合中的对象应该是有name、position和department三个属性。如果是那样的话在前端就不好加以判断了,可以在后端Servlet中,为每个属性创建一个Set,遍历这个list,放入Set时会自动去重。最后json返回要展示的Set即可:

    List<Person> list = new ArrayList<>();    
    HashSet<String> nameSet=new HashSet<>();
    HashSet<String> positionSet=new HashSet<>();
    HashSet<String> departSet=new HashSet<>();
    //在String类中重写了hashCode和equals方法
    //在add内部实现的去重的功能,默认调用的是字符串的hashCode和equals方法,实现去重
    for (Person person : list) {
        nameSet.add(person.name);
        positionSet.add(person.position);
        departSet.add(person.department);
    }

如果解答了同学的疑问,望采纳~

祝学习愉快~


1

造梦大师

提问者

2019-05-11

老师您好,我问的是如何在html添加职位信息时判断是否有重复的元素,如果有就删除?

0

芝芝兰兰

2019-05-11

同学你好。在页面中如需删除元素和内容,一般可使用以下两个 jQuery 方法:

1、remove() - 删除被选元素(及其子元素)

2、empty() - 从被选元素中删除子元素

在这里同学可以使用empty()来清空content其中的元素,在同学的代码中将html赋值为“”时,也把content原有的内容清空:

var html="";
$("#content").empty();

如果解答了同学的疑问,望采纳~

祝学习愉快~


0

0 学习 · 10204 问题

查看课程