導航:首頁 > 編程語言 > javascriptcontains

javascriptcontains

發布時間:2022-09-23 16:19:13

js怎麼判斷某個數組裡面是否包含這個元素

在C#語法中判斷集合是否包含某個元素可以使用Contains方法,但是類似的問題在javascript中要怎麼處理呢,js中沒有Contains方法。
我們可以利用js的原型擴展來封裝一個我們自己的Contains方法。

<script type="text/javascript">
$(function () {
Array.prototype.contains = function (element) { //利用Array的原型prototype點出一個我想要封裝的方法名contains
for (var i = 0; i < this.length; i++) {
if (this[i] == element) { //如果數組中某個元素和你想要測試的元素對象element相等,則證明數組中包含這個元素,返回true
return true;
}
}
}
//用一個例子來驗證一些我們封裝的方法
var $subCategoryID = $("#hidSubCategory").val();
var $subCategoryIDs = new Array(); //構造一個數組對象
$subCategoryIDs = $subCategoryID.split(","); //為數組賦值
$("input[type=radio]").each(function () {
if ($subCategoryIDs.contains($(this).attr("id"))) { //利用contains方法判斷數組中是否含有$(this).attr("id")
$(this).attr("checked", true);
}
})
})
</script>

② javascript contains怎麼用

這個函襲數是jQuery裡面的工具函數吧。
語法:
jQuery.contains(container,contained) //返回值是bool類型。

參數:
container:DOM元素作為容器,可以包含其他元素
contained:DOM節點,可能被其他元素所包含

檢測下試一試:
jQuery.contains(document.documentElement, document.body); // true
jQuery.contains(document.body, document.documentElement); // false

③ js怎麼判斷某個數組裡面是否包含這個元素

可以抄使用數組的襲indexOf()方法,如果返回值為-1則說明不存在,如果返回值為大於-1的整數,則說明存在。例如: var arr = [1,2,3]; arr.indexOf(1); // 返回0 arr.indexOf(5); // 返回-1 附:返回值為數組中的最靠前元素在數組的位置

④ 關於jquery的contains的問題

沒有這個contains篩選方法

只有:contains選擇器

$("p:contains('123')").html()

⑤ 如何在javascript中的數組查找某個元素是否存在

function contains(arr, val) {
if (arr.indexOf(val) !== -1) {
return true;
} else {
return false;
}
}

⑥ js 沒有contains方法提示錯誤

這個是jQuery的方來法;
描述: 檢查一自個DOM元素是另一個DOM元素的後代。
jQuery.contains( container, contained )
container
類型: Element
DOM元素作為容器,可以包含其他元素
contained
類型: Element
DOM元素,可能被其他元素所包含
如果第二個參數所提供的DOM元素是第一個參數DOM元素的後裔,那麼$.contains() 方法返回true,無論是直接的子元素或者是後代元素。否則,返回false。只支持 element 節點;如果第二個參數是一個文本或注釋節點,$.contains()將返回 false。

⑦ javascript如何查找頁面中的字元串

這個方法很多.
1.indexOf
for(var i=0;i<document.links.length;i++){
if(document.links[i].innerHTML.indexOf('test')>-1){
alert(document.links[i].innerHTML);
}
}

2.正則表達式
for(var i=0;i<document.links.length;i++){
if((/test/).test(document.links[i].innerHTML)){
alert(document.links[i].innerHTML);
}
}

3.jquery //1.2之前版本才可以用..1.2之後就去掉了contains.但是還是有辦法實現的..這個就不說了..要自己寫一個簡單的函數.
$(function(){
$('a').each(function(){
if($(this).html().contains('test')){
alert($(this).html());
}
});
});

⑧ JavaScript中mouseout函數一般位置

與 mouseenter 事件不同,不論滑鼠指針穿過被選元素或其子元素,都會觸發 mouseover 事件。只有在滑鼠指針穿過被選元素時,才會觸發 mouseenter 事件。
與 mouseout 事件不同,只有在滑鼠指針離開被選元素時,才會觸發 mouseleave 事件。如果滑鼠指針離開任何子元素,同樣會觸發 mouseout 事件。
  解決兩者的區別,看下面引用的例子:
  當為某個容器綁定了 onmouseover 或者onmouseout 事件時,如果這個容器中有其它元素節點,那麼滑鼠在內部移動時會頻繁觸發 onmouseover和onmouseout 事件。
  而我想要的效果是:事件僅在滑鼠進入/離開元素區域觸發一次,當滑鼠在元素區域內部移動的時候不會觸發。
  為什麼會出現這個原因呢?其實是因為事件冒泡導致的。當滑鼠移上或者移出容器中的子節點時,會分別觸發mouseover和mouseout事件,緊隨著dom樹向上冒泡傳遞,直到被事件處理程序(監聽器)捕獲捕獲或者冒泡到根節點(document或者window),也就是說事件會向它的父級對象派發。
知道了問題產生原因,那麼解決起來是不是也很簡單呢?最初我想的是取消事件冒泡,使用event.cancelBubble = true(IE)和e.stopPropagation()(其它瀏覽器),但是簡單測試後發現貌似沒有什麼效果,問題依舊,貌似冒泡停止不了,原因不明。(補充:我是測試將容器中的a鏈接節點取消冒泡,但是發現滑鼠移上移下還會觸發事件。a節點下還有span節點。難道要將容器中所有節點都取消冒泡才行?有心人可以測試,如果真的這樣,那也太惡心了,要是N多的節點,難道都要停止冒泡下?)
  其實在IE下滑鼠事件有個 mouseEnter 和 mouseLeave,這個就是移進和移處容器時觸發一次,在內部移動則不會觸發,遺憾的是只有IE支持。我們現在要做的就是「為非IE瀏覽器添加mouseEnter和mouseLeave支持」。
  我翻閱了網路最新開源的JS庫tangram,看了裡面的處理,發現貌似是單獨處理了非IE瀏覽器下的事件,使用一個叫「.event._eventFilter._crossElementBoundary(listener, e)」的方法修正mouseover和mouseout,然後封裝了個mouseEnter和mouseLeave事件。
.event._eventFilter._crossElementBoundary = function(listener, e){
var related = e.relatedTarget,
current = e.currentTarget; if(typeof related == 'undefined'){ return listener.call(current, e);
} // 如果current和related都是body,contains函數會返回false
// Firefox有時會把XUL元素作為relatedTarget
// 這些元素不能訪問parentNode屬性
// thanks jquery & mootools
//如果current包含related,說明沒有經過current的邊界
//註:.dom.contains是個定義的檢測節點是否包含的函數,下面我會講到
if(related === false || current == related || related.prefix == 'xul' || .dom.contains(current, related)){ return ;
} //調用執行
return listener.call(current, e);
};123456789101112131415161718

  網路的方法我並不喜歡,首先它只對非IE瀏覽器進行了處理,當然,它又進行了封裝,可以直接使用mouseEnter和mouseLeave;但是,我們做普通開發,沒必要這么封裝,我只是想要簡單的去掉mouseover和mouseout的這個惱人特性。
  而jQuery則不是這么做的,它是直接對IE和其它所有瀏覽器下的mouseover和mouseout事件進行了修正。參考jQuery,我得到了我目前所有的代碼
  首先,介紹個判斷節點對象是否包含的函數contains.
function contains(p,c){
return p.contains ?
p != c && p.contains(c) : !!(p.compareDocumentPosition(c) & 16);
}1234

  然後就是重點的了,這里我們在IE下用到了fromElement和toElement,這兩個是IE下的滑鼠移上去時和移出時的節點對象。
function fixedMouse(e,target){
var related, type=e.type.toLowerCase();//這里獲取事件名字
if(type=='mouseover'){
related=e.relatedTarget||e.fromElement
}else if(type='mouseout'){
related=e.relatedTarget||e.toElement
}else return true; return related && related.prefix!='xul' && !contains(target,related) && related!==target;
}12345678910

  然後我們怎麼用呢?比如在綁定事件時,
//addListener為封裝的事件綁定函數addListener(target,'mouseover',function(e){
e=e||window.event; if(fixedMouse(e, target)){ //do something
}
},false);1234567

  這樣就會只在移入移出target節點時觸發mouseover和mouseout了。
  當然,你也可以將上面的代碼單獨封裝成mouseEnter和mouseLeave,這樣可以以後調用時更好區別mouseover和mouseout。

⑨ Javascript中的擴展求解 Each、Contains

Each函數是對一個數組中的每個元素都調用一次傳入的那個函數(而給這個函數傳的參數就是每一個數組元素和對應的下標)

Contains函數 如何b是a的子節點返回TRUE 不是的話返回一個相對偏移量(位運算, 我看了頭有點暈)
兩個!!應該是位運算符(兩次取反?) 這個不清楚了

閱讀全文

與javascriptcontains相關的資料

熱點內容
ps3文件分割視頻 瀏覽:280
微信圖片一鍵轉發軟體 瀏覽:331
如何判斷s200plc編程電纜 瀏覽:691
太原編程培訓班哪個好 瀏覽:171
樹葉吹奏教程 瀏覽:6
社交app帶來了哪些社會問題 瀏覽:394
如何安裝愛寶8800數據採集器 瀏覽:712
文件保存了怎麼找不到了 瀏覽:476
彩票網站怎麼辨真假 瀏覽:840
pr找不到該文件 瀏覽:963
java移除panel 瀏覽:354
jsp填充jsp 瀏覽:166
海關外貿大數據在哪裡查 瀏覽:381
思特奇java筆試題 瀏覽:121
葫蘆俠在手機中的文件名 瀏覽:813
plc編程應該怎麼收錢 瀏覽:584
c語言中源文件由什麼組成 瀏覽:890
linuxhttpdphp配置文件 瀏覽:607
拆單數據要怎麼保存 瀏覽:17
mac電腦怎樣壓縮文件到100m 瀏覽:645

友情鏈接