JQ实现判断iPhone,jQuery的选择器

在前面的章节中,我们展示了一些有关如何选取 HTML 元素的实例。关键点是学习
jQuery 选择器是如何准确地选取您希望应用效果的元素。jQuery
元素选择器和属性选择器允许您通过标签名、属性名或内容对

LinkedHashMap

最近做了一版微信宣传页,通过JQ来判断设备,并进行下载

HTML 元素进行选择。选择器允许您对 HTML 元素组或单个元素进行操作。在 HTML
DOM 术语中:选择器允许您对 DOM 元素组或单个 DOM
节点进行操作,$(“#myElement”)选择id值等于myElement的元素,id值不能重复在文档中只能有一个,mm

构造方法摘要

inkedHashMap()

构造一个带默认初始容量 (16) 和加载因子 (0.75)
的空插入顺序LinkedHashMap 实例。

LinkedHashMap(int initialCapacity)

构造一个带指定初始容量和默认加载因子 (0.75) 的空插入顺序
LinkedHashMap 实例。

LinkedHashMap(int initialCapacity, float loadFactor)

构造一个带指定初始容量和加载因子的空插入顺序 ·LinkedHashMap· 实例。

LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)

构造一个带指定初始容量、加载因子和排序模式的空 LinkedHashMap
实例。 accessOreder : false(默认)为插入顺序, true
为访问顺序。

LinkedHashMap(Map<? extends K,? extends V> m)

构造一个映射关系与指定映射相同的插入顺序 LinkedHashMap 实例。


微信内置浏览器对下载链接进行了屏蔽,所以先进行判断,如果是微信内置浏览器,则跳转应用宝链接,如果不是,则判断是iPhone/Adroid/PC
并进行跳转

jQuery的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法,$(“#myELement”)选择id值等于myElement的元素,id值不能重复在文档中只能有一个  id值是myElement所以得到的是唯一的元素 
$(“div”)选择所有的div标签元素,返回div元素数组 
$(“.myClass”)选择使用myClass类的css的所有元素.

tips

如果调用LinkedHashMap(initialCapacity, loadFactor,true),每次用get或put时,受影响的条目将从当前位置删除,并放到链表的尾部(散列表中的桶不会受影响,一个条目总位于其散列码对应的桶中)。

public class LinkedHashMapT {

    public static void main(String[] args) {
        LinkedHashMap<String, String> lhMap = new LinkedHashMap<>(16, 0.75F, true);
        lhMap.put("111", "111");
        lhMap.put("222", "222");
        lhMap.put("333", "333");
        lhMap.put("444", "444");
        lhMap.put("555", "555");
        lhMap.put("666", "666");
        loopLinkedHashMap(lhMap);
        loopLinkedHashMap(lhMap);
        loopLinkedHashMap(lhMap);
        lhMap.get("333");
        loopLinkedHashMap(lhMap);
        lhMap.put("222", "222");
        loopLinkedHashMap(lhMap);
        lhMap.put("777", "777");
        loopLinkedHashMap(lhMap);

    }
    public static void loopLinkedHashMap(LinkedHashMap<String, String> linkedhashMap){
        Set<Map.Entry<String,String>> set = linkedhashMap.entrySet();
        Iterator<Map.Entry<String, String>> it = set.iterator();
        while(it.hasNext()){
            System.out.print(it.next() + "\t");
        }
        System.out.println();
    }
}

111=111 222=222 333=333 444=444 555=555 666=666 
111=111 222=222 333=333 444=444 555=555 666=666 
111=111 222=222 333=333 444=444 555=555 666=666 
111=111 222=222 444=444 555=555 666=666 333=333 
111=111 444=444 555=555 666=666 333=333 222=222 
111=111 444=444 555=555 666=666 333=333 222=222 777=777 

代码如下:

 $(“*”)选择文档中的所有的元素,可以运用多种的选择方式进行联合选择:例如
$(“#myELement,div,.myclass”)
层叠选择器:$(“form input”)选择所有的form元素中的input元素
$(“#main > *”)选择id值为main的所有的子元素;

LRUCache

  • 构造LinkedHashMap的子类
  • 覆盖方法:protected boolean removeEldestEntry(java.util.Map.Entry<K,V> eldest)

public class LRUCache extends LinkedHashMap
{
    private static final long serialVersionUID = 1L;
    protected int maxElements;
    public LRUCache(int maxSize)
    {
        super(maxSize, 0.75F, true);
        maxElements = maxSize;
    }

    protected boolean removeEldestEntry(java.util.Map.Entry eldest)
    {
        return size() > maxElements;
    }
}
function downloadApp(){
  var u = navigator.userAgent; 
  var ua = navigator.userAgent.toLowerCase(); 
 var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 
 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 
  if(ua.match(/MicroMessenger/i)=="micromessenger") {  //微信内置浏览器
  $(".download a").click(function(){
   window.location.href='http://a.app.qq.com/o/simple.jsp?pkgname=应用名 '
  });
  }else{
   if(isiOS){

   $(".download a").click(function(){
    window.location.href='https://itunes.apple.com/cn/app/应用名'
   });
  }else if(isAndroid){
   $(".download a").click(function(){
    window.location.href='http://a.app.qq.com/o/simple.jsp?pkgname=应用名'
   });
  }else{
   $(".download a").click(function(){
    window.location.href='应用链接'
   });
  }
 }

 }

 $(“label + input”)选择所有的label元素的下一个input元素节点,经测试选择器返回是label标签后面直接跟一个input标签的所有input标签元素;  $(“#prev ~ div”)同胞选择器,该选择器返回的为id为prev的标签元素的所有的属于同一个父元素的div标签
基本过滤选择器:$(“tr:first”)选择所有tr元素的第一个;  $(“tr:last”)选择所有tr元素的最后一个
$(“input:not(:checked) + span”)过滤掉:checked的选择器的所有的input元素;  $(“tr:even”)选择所有的tr元素的第0,2,4… …个元素(注意:因为所选择的多个元素时为数组,所以序号是从0开始);  $(“tr:odd”)选择所有的tr元素的第1,3,5… …个元素;  $(“td:eq(2)”)选择所有的td元素中序号为2的那个td元素;  $(“td:gt(4)”)选择td元素中序号大于4的所有td元素;  $(“td:lt(4)”)选择td元素中序号小于4的所有的td元素  $(“:header”)选择h1、h2、h3之类的;  $(“div:animated”)选择正在执行动画效果的元素内容过滤选择器:$(“div:contains(‘John’)”)选择所有div中含有John文本的元素;  $(“td:empty”)选择所有的为空(也不包括文本节点)的td元素的数组

测试发现,<a>标签里竟然出现了
需要点击二次才能跳转的情况,所以进行完善,而且发现已经在时间上绑定了click事件
还包在函数里 好像有点多此一举。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图