js中的"=="和equals()以及is()三者的区别

来源:互联网 发布:仙6steam mac 编辑:程序博客网 时间:2024/06/05 17:58

   一、

 

   在 javaScript或者jQuery中字符串比较没有equals()方法,要比较两个字符串是否相等可以直接用==或者is()进行判断。

 

    例如:

        

"a"=="a"  

    

$("#a").val().is("a")

  

    当然我们可以自己写一个equals()方法:

    如:

    1.

Js代码  收藏代码
  1. String.prototype.equals = function(s){  
  2.     return this == s;  
  3. }   

    2.

   

Js代码  收藏代码
  1. function equals(str1, str2)    
  2. {    
  3.     if(str1 == str2)    
  4.     {    
  5.         return true;    
  6.     }    
  7.     return false;    
  8. }    

 

   二、

 

 is(expr)

  用一个表达式来检查当前选择的元素集合,如果其中至少有一个元素符合这个给定的表达式就返回true。
  如果没有元素符合,或者表达式无效,都返回'false'. 'filter' 内部实际也是在调用这个函数,所以,filter()函数原有的规则在这里也适用。

Checks the current selection against an expression and returns true, if at least one element of the selection fits the given expression.
If no element fits, or the expression is not valid, then the response will be 'false'. 'filter' is used internally, therefore all rules that apply there apply here, as well.

返回值

Boolean

参数

expr (String) :用于筛选的表达式

 

示例

由于input元素的父元素是一个表单元素,所以返回true。

HTML 代码:

Html代码  收藏代码
  1. <form><input type="checkbox" /></form>  

 

 jQuery 代码:

Js代码  收藏代码
  1. $("input[type='checkbox']").parent().is("form")  

 

 

结果:

  true
 
Js代码  收藏代码
  1. <script language="javascript" src="jquery.js"></script>     
  2. <script>     
  3. jQuery(function($){     
  4.     $(".abc").click(function(){     
  5.         if ($(this).next(".content").is(":hidden")) {     
  6.             $(this).next(".content").fadeIn("slow");     
  7.             $(this).html("收起");     
  8.             $(this).addClass("closeMore");     
  9.         } else {     
  10.             $(this).next(".content").fadeOut("slow");     
  11.             $(this).html("打开");     
  12.             $(this).addClass("closeMore");           
  13.         }     
  14.     })     
  15. })     
  16.     
  17. </script>    
 
三、

 

  ==为js的比较运行符。

 

比较运算符

比较运算符在逻辑语句中使用,以测定变量或值是否相等。

给定 x=5,下面的表格解释了比较运算符:

运算符 描述 例子==等于x==8 为 false===全等(值和类型)x===5 为 true;x==="5" 为 false!=不等于x!=8 为 true>大于x>8 为 false<小于x<8 为 true>=大于或等于x>=8 为 false<=小于或等于x<=8 为 true

 

 

   The 3 equal signs mean "equality without type coercion". Using the triple equals, the values must be equal in type as well.

0==false   // true0===false  // false, because they are of a different type1=="1"     // true, auto type coercion1==="1"    // false, because they are of a different type

 

 

      === and !== are strict comparison operators:

JavaScript has both strict and type-converting equality comparison. For strict equality the objects being compared must have the same type and:

  • Two strings are strictly equal when they have the same sequence of characters, same length, and same characters in corresponding positions.
  • Two numbers are strictly equal when they are numerically equal (have the same number value). NaN is not equal to anything, including NaN. Positive and negative zeros are equal to one another.
  • Two Boolean operands are strictly equal if both are true or both are false.
  • Two objects are strictly equal if they refer to the same Object.
  • Null and Undefined types are == (but not ===).

另:

 

1.document.getElementById
document.getElementsByName()
document.getElementsByTagName()
注意上面的Element后在Id中是没有加“s”的,特别容易写错.

 

2.注意属性选择器的使用

jQuery('[attribute="value"]')

$('input[value="Hot Fuzz"]').next().text(" Hot Fuzz");
0 0
原创粉丝点击