导航:首页 > 编程语言 > 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相关的资料

热点内容
中国知网是哪些数据库 浏览:280
fastjson优点 浏览:302
mstcam数控铣床编程如何串连 浏览:502
d4252用什么软件编程 浏览:35
大学生如何参与大数据 浏览:779
autocad3维教程 浏览:2
港澳台版本有什么区别 浏览:263
java四个月能学到什么 浏览:46
开发板和linux文件 浏览:202
appstore外国帐号怎么看预约游戏 浏览:137
有什么免费加速网站的cdn 浏览:781
哪个文件存在最安全 浏览:199
淘宝导航栏分割线代码 浏览:271
win10开不了机按f8没用 浏览:12
河南营销网站推广多少钱 浏览:135
华为畅享6手机文件管理 浏览:939
linux驱动环境 浏览:893
ae用什么打开文件 浏览:877
湖南岳阳大数据中心 浏览:710
DSP大数据公司 浏览:510

友情链接