javascript中contains是否包含功能實(shí)現(xiàn)代碼(擴(kuò)展字符、數(shù)組、dom)
一個(gè)小誤區(qū) JS中的contains
今天想要用JS判斷集合中是否包含另一個(gè)集合。
發(fā)現(xiàn),Contains并不能達(dá)到所要的效果,查找之后發(fā)現(xiàn)了問(wèn)題
原來(lái),js的contains方法用來(lái)查看dom元素的包含關(guān)系,并不是Java中數(shù)組的contains方法。
先看一下duyunchao同學(xué)分享的代碼
$(document).ready(function() { var Arrays = ['11','22','33']; var Array ='11'; if(Arrays.indexOf(Array) >= 0) { alert('Arrays中包含Array'); } });
若js要判斷數(shù)組的包含關(guān)系,應(yīng)該用indexof
原生JS中是有contains方法的,但只有dom元素的包含關(guān)系,這里腳本之家就為大家分享一下擴(kuò)展的字符string與數(shù)組arr的擴(kuò)展代碼
結(jié)構(gòu)與測(cè)試代碼如下
<div id="div1"> <div id="div2"> jb51.net </div> </div> <script type="text/javascript"> var div1= document.getElementById("div1"); var div2= document.getElementById("div2"); console.log(div1.contains(div2)); var str1="jb51.net"; var str2="jb51"; console.log(str1.contains(str2)); </script>
但它并不是字符串方法,,僅用于判斷DOM元素的包含關(guān)系,參數(shù)是Element類型
若要在JS中判斷倆字符串的包含關(guān)系,用indexOf()
但是我們可以通過(guò)擴(kuò)展的方法來(lái)實(shí)現(xiàn)
<div id="div1"> <div id="div2"> jb51.net </div> </div> <script type="text/javascript"> var div1= document.getElementById("div1"); var div2= document.getElementById("div2"); console.log("div1.contains(div2)="+div1.contains(div2)); //字符擴(kuò)展contains就不會(huì)報(bào)錯(cuò)了 String.prototype.contains = function(a) { return - 1 < this.indexOf(a) }; var str1="jb51.net"; var str2="jb51"; console.log("str1.contains(str2)="+str1.contains(str2)); //數(shù)組擴(kuò)展contains適用于數(shù)組判斷 Array.prototype.contains = function(a) { if ("string" == typeof a || "number" == typeof a) for (var b in this) if (a == this[b]) return ! 0; return ! 1 }; var arr1=["jb51.net","jbzj.com","jb51.com"]; var str3="jb51.net"; console.log("arr1.contains(str3)="+arr1.contains(str3)); </script>
下面是運(yùn)行結(jié)果
所以后期我們的代碼可以加上這兩段即可
//字符擴(kuò)展contains就不會(huì)報(bào)錯(cuò)了 String.prototype.contains = function(a) { return - 1 < this.indexOf(a) }; //數(shù)組擴(kuò)展contains適用于數(shù)組判斷 Array.prototype.contains = function(a) { if ("string" == typeof a || "number" == typeof a) for (var b in this) if (a == this[b]) return ! 0; return ! 1 };
以上就是javascript中contains是否包含功能實(shí)現(xiàn)代碼(擴(kuò)展字符、數(shù)組、dom)的詳細(xì)內(nèi)容,更多關(guān)于js contains的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
微信小程序?qū)崿F(xiàn)聯(lián)動(dòng)菜單
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)聯(lián)動(dòng)菜單,左右側(cè)菜單效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09JavaScript提取元素中第一個(gè)子元素的實(shí)現(xiàn)方法
本文主要介紹了JavaScript提取元素中第一個(gè)子元素的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Javascript實(shí)現(xiàn)一朵從含苞到綻放的玫瑰
今天小編就為大家分享一篇關(guān)于Javascript實(shí)現(xiàn)一朵從含苞到綻放的玫瑰,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03javascript中強(qiáng)制執(zhí)行toString()具體實(shí)現(xiàn)
Javascript通常會(huì)根據(jù)方法或運(yùn)算符的需要而自動(dòng)把值轉(zhuǎn)成所需的類型,這可能導(dǎo)致各種錯(cuò)誤,接下來(lái)為大家介紹下javascript如何強(qiáng)制執(zhí)行toString(),感興趣的朋友可以參考下哈2013-04-04