日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

重磅推荐12款jQuery编写的选择器

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重磅推荐12款jQuery编写的选择器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我最近開始編寫自己的jQuery選擇器,我越來越開始意識到這是一種不錯而簡潔的完成某些特定任務的方式,而以往我使用的是迭代器。

  這些選擇器中如果不是你一直在尋找的,你也許根本將不會碰到。所以我決定寫下一個簡單的教程來告知你用jQuery寫出自己的選擇器是一件相當輕松的事。

  下面是一個用jQuery編寫選擇器的模版文件,你需要的全都在這里:

$.extend($.expr[':'],
02
{
03
??? selectorName: function(el, i, m)
04
??? {
05
??????? return true/false;
06
??? },
07
????
08
??? selectorName2: function(el, i, m)
09
??? {
10
??????? return true/false;
11
??? }
12
});

?

  下面是兩種調用一個選擇器的方法,一種帶有一個參數而另一種則沒有參數:

$("#container :selectorName");
2
$("#conainert :selectorName(#element)");
3
$("#conainert :selectorName(>300)");

?

  i與m參數可以是缺省的,當傳入一個集合,他們只是用來匹配一個參數的當前元素的索引。當你傳入一個參數時,匹配器便開始工作了,這是一個正則表達式匹配器,返回類似如下信息:

1
[":width(>100)", "width", "", ">100"]

?

  你會經常使用到m[3]的值,至此,便由你決定如何處理傳入的參數。下面給出了一系列的例子。

  我們可以與jQuery已有的選擇器一起進行鏈式的調用,這是相當有意思的:

1
$("#container :isBold:even");
2
$("#container :leftOf(#element):width(>100):height(>100)");

?

  你可以在此下載該庫和文檔

  以下列出12個自定義的選擇器實例,你可以在這些選擇器中放入任何內容,只要你根據當前元素是否通過選擇器測試返回true或者false值即可。

  1、:loaded

  選擇所有加載完的圖片:

01
$.extend($.expr[':'],
02
{
03
??? loaded: function(el)
04
??? {
05
??????? return $(el).data('loaded');
06
??? }
07
}
08

09
$('img').load(function(){ $(this).data('loaded', true); });
10
$('img:loaded');

?

  2.Width

??????? 選擇所有寬度大于或小于指定值的元素:

01
$.extend($.expr[':'],
02
{
03
??? width: function(el, i, m)
04
??? {
05
??????? if(!m[3]||!(/^(<|>)\d+$/).test(m[3])) {return false;}
06
??????? return m[3].substr(0,1) === '>' ?
07
??????????? $(el).width() > m[3].substr(1) : $(el).width() < m[3].substr(1);
08
??? }
09
}
10

11
$('#container :width(>100)');

?

  3.Height

?????? 選擇所有高度大于或小于指定值的元素:

01
$.extend($.expr[':'],
02
{
03
??? height: function(el, i, m)
04
??? {
05
??????? if(!m[3]||!(/^(<|>)\d+$/).test(m[3])) {return false;}
06
??????? return m[3].substr(0,1) === '>' ?
07
??????????? $(el).height() > m[3].substr(1) : $(el).height() < m[3].substr(1);
08
??? }
09
}
10

11
$('#container :height(<100)');

??????? 4.leftOf

  選擇在指定元素左邊的所有元素

01
$.extend($.expr[':'],
02
{
03
??? leftOf: function(el, i, m)
04
??? {
05
??????? var oe = $(el).offset();
06
??????? var om = $(m[3]).offset();
07

08
??????? return oe.left + $(el).width() < om.left;
09
??? }
10
}
11

12
$('#container :leftOf(#element)');

?

  5、RightOf

?????? 選擇在指定元素右邊的所有元素

01
$.extend($.expr[':'],
02
{
03
??? rightOf: function(el, i, m)
04
??? {
05
??????? var oe = $(el).offset();
06
??????? var om = $(m[3]).offset();
07

08
??????? return oe.left > om.left + $(m[3]).width();
09
??? }
10
}
11

12
$('#container :rightOf(#element)');


  6、External

選擇所有帶外站鏈接的錨點標簽

01
$.extend($.expr[':'],
02
{
03
external: function(el)
04
{
05
if(!el.href) {return false;}
06
return el.hostname && el.hostname !== window.location.hostname;
07
}
08
}
09

10
$('#container :external');

7、target選擇指定target屬性的錨點標簽

01
$.extend($.expr[':'],
02
{
03
target: function(el, i, m)
04
{
05
if(!m[3]) {return false;}
06
return (m[3] === '_self' && ($(el).attr('target') == '' || !el.target)) ||
07
(m[3] === $(el).attr('target'));
08
}
09
}
10

11
$('#container :target(_self)');

8、inView

  選取位于可視窗口內的所有元素

01
$.extend($.expr[':'],
02
{
03
inView: function(el)
04
{
05
var offset = $(el).offset();
06

07
return !(
08
(offset.top > $(window).height() + $(document).scrollTop()) ||
09
(offset.top + $(el).height() < $(document).scrollTop()) ||
10
(offset.left > $(window).width() + $(document).scrollLeft()) ||
11
(offset.left + $(el).width() < $(document).scrollLeft())
12
)
13
}
14
}
15

16
$('#container :inView');

?

  9、largerThan

選取比指定元素大的所有元素

01
$.extend($.expr[':'],
02
{
03
largerThan: function(el, i, m)
04
{
05
if(!m[3]) {return false;}
06
return $(el).width() * $(el).height() > $(m[3]).width() * $(m[3]).height();
07
}
08
}
09

10
$('#container :largerThan(#element)');

10、isBold

  選擇font-weight為700的所有元素

1
$.extend($.expr[':'],
2
{
3
isBold: function(el)
4
{
5
return $(el).css("fontWeight") === '700';
6
}
7
}
8

9
$('#container :isBold');

?

  11、Color

選擇顏色為指定RGB值的所有元素

01
$.extend($.expr[':'],
02
{
03
color: function(el, i, m)
04
{
05
if(!m[3]) {return false;}
06
return $(el).css('color') === m[3];
07
}
08
}
09

10
$("#container :color(rgb(255, 0, 0))");

12、Hasld

  選擇存在id屬性的所有元素

1
$.extend($.expr[':'],
2
{
3
hasId: function(el)
4
{
5
return $(el).attr('id') !== undefined && $(el).attr('id') !== '';
6
}
7
}
8

9
$("#container :hasId");
?

轉載于:https://blog.51cto.com/wws5201985/806982

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的重磅推荐12款jQuery编写的选择器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 九九在线免费视频 | 国产aaa级片| 亚洲成人经典 | 男人天堂1024 | 欧美97| 亚洲高清视频在线观看 | 国产欧美日韩精品一区二区三区 | 高清欧美性猛交 | 婷婷狠狠操 | 中文字幕蜜桃 | 国产一区二区小说 | 欧美色v | 亚洲国产免费看 | 欧美极品少妇xxxxⅹ免费视频 | www.天天操.com| 亚洲天堂av网| 中文字幕 人妻熟女 | 亚洲av无码一区二区乱子伦 | 久久99视频| 国产男人的天堂 | 嫩草影院在线视频 | 热99在线| 亚洲激情一区二区 | 午夜痒痒网 | 黄色大片免费的 | 十大污网站 | 久久91精品国产 | 毛片无限看 | 亚洲成年人专区 | 最近中文字幕mv免费高清在线 | 日本欧美在线 | 69视频免费观看 | 午夜精品一区二区三区在线观看 | 久久精国产 | 免费久草视频 | 一个人免费在线观看视频 | 国产精品熟女视频 | 麻豆一区二区在线 | 色噜噜在线播放 | 欧美精品欧美精品系列 | 成人软件在线观看 | www九九热 | 樱空桃在线 | 成人不卡av | 麻豆网 | 国产一区二区精彩视频 | 国产3区| 深夜视频在线 | 中文字幕一区二区精品 | 免费在线看视频 | 奇米影视第四色首页 | 中文字幕免费视频 | 国产黄色大全 | 亚洲狼人干 | 91嫩草在线 | 久久中文字幕人妻熟av女蜜柚m | 精品久久久久久中文字幕人妻最新 | 久久视频在线 | 久久久久国产精 | 男男做爰猛烈叫床爽爽小说 | 在线资源av | 99精品欧美 | 国产亚洲精品久久久久丝瓜 | 一二区免费视频 | 欧美丝袜一区二区三区 | 国产一区二区三区网站 | 国产性猛交xxxⅹ交酡全过程 | 色婷婷麻豆| 韩国bj大尺度vip福利网站 | 醉酒壮男gay强迫野外xx | 美女又黄又免费 | 一区二区视频网 | 强伦轩人妻一区二区电影 | 天堂在线精品视频 | 日韩中文字幕视频在线 | 欧美色精品在线 | 美痴女~美人上司北岛玲 | 少妇精品高潮欲妇又嫩中文字幕 | 亚洲1页| 蜜桃9999 | 狠狠夜| 精品福利一区二区三区 | 日韩一二三四 | 涩涩视频在线观看 | 少妇裸体挤奶汁奶水视频 | 综合色综合 | 伊人婷婷久久 | 第四色影音先锋 | 日韩精品国产一区二区 | 国产又粗又猛又爽又黄91 | 一区二区三区免费高清视频 | 亚洲毛片久久 | 潘金莲裸体一级淫片视频 | 午夜影院视频 | 狠狠躁夜夜躁人人爽视频 | 国产精品久久久久久免费免熟 | 日本女人毛片 | 奇米视频在线观看 | 日韩视频欧美视频 |