关于JS和JQuery使用的小知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36719449/article/details/82805497

禁止a标签href跳转

<a href="javascript:void(0);" onclick="window.open('http://www.baidu.com')">a1标签</a>
<a href="javascript:;" onclick="javascript:window.location.href='http://www.baidu.com'">a2标签</a>
<a href="javascript:;" onclick="javascript:console.log(window.location.href)">a3标签</a>
a1标签,禁止href跳转,新窗口中打开。
a2标签,禁止href跳转,不打开新窗口跳转跳转。
a3标签,禁止href跳转,打印当前页面的地址栏信息。

当不使用a标签的href属性时,删除target属性。

阻止浏览器的默认行为

因为a标签的href属性和onclick属性同时存在时,点击事件会先触发。如果不想链接跳转(阻止浏览器的默认行为),需要在onclick事件里面加上return false;
浏览器的默认行为: 标签事件onclick=“return false;” 在HTML代码中,无论你在哪里放置了onclick事件,并且返回值为false时,那么该处的默认行为将不会执行。这里的默认行为是指没有Onclick事件时原本的行为。

<a href="" onclick="return false;">return false;</a>
<a href="javascript:;" onclick="send();return false;">

阻止表单提交

<input type="submit" onclick="return submit()">

表单提交的时候,可能有一些校验条件 ,不满足的时候,需要阻止submit事件的执行(阻断其默认提交),所以需要“return”;

javascript void

在javascript中 void是一个操作符,该操作符表示计算一个表达式值,但是不返回值。用法如下:

a).javascript:void (expression)
b). javascript:void expression

如何在同一个页面中使用不同版本的JQuery插件

亲测有效:

<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script src="jquery-3.3.1.js"> </script>
<script> 
	var $JQ1=$.noConflict(true)
</script>
<script src="jquery-1.7.js"> </script>
<script>
	var $JQ2=$.noConflict(true);
</script>
</head>
<body>

<button id="login" onclick="gto()">JQ1测试</button>
<button id="getpic" onclick="goto()">JQ2测试</button>

<input type="text" id="t1"/>
<input type="text" id="t2"/>
</body>

<script>
	function gto(){
		$JQ1("#t1").val('JQuery1')
	}
	
	function goto (){
		console.log("This is  JQ2")
		$JQ2("#t2").val("jqery 2")
	}
</script>

js中使用el表达式和java代码

js中也可以使用el表达式,但是需要使用单引号或者双引号括起来。

if (id =='${group.id}'){
	doSomething()...
}

又比如:

<script type="text/javascript">  
    //获取el表达式的值,此时aaa="jack"  。
    var aaa = "${user.name}";   //如果不加,在js执行的时候代码为var aaa = jack; 此时会把jack看做一个变量处理,如果此时碰巧js全局有jack变量,那就会把jack变量的值赋给aaa,否则报undefined错  。
    
	//获取java代码的值,此时nnn="3"  。
    var nnn = "<%=Constants.getValue()%>";     //如果不加,在js执行的时候代码为var nnn = 3;此时typeof(nnn)为number类型  。
</script>

如果值是字符串类型的,最好加上引号;如果是数字类型的,可以加(会转为字符串),也可以不加

稍微复杂点的用法— 在js中遍历list数组

el标签 还能包裹js代码,js代码中又掺杂着el表达式,有没有发现,够乱了....
var array = new Array();  
<c:forEach items="${myTickets}" var="t">;  
array.push(${t.ticketNo}); //js中可以使用此标签,将EL表达式中的值push到数组中  
<c:forEach>;  
for(var i=0;i<array.length;i++)  
{  
  $('#qrcode'+i).qrcode({text: ctx+"/wxpay/"+array[i]});  
}

页面中关于单引号 和 双引号

页面里单引号大于双引号,但是如果单引号里讨论双引号,双引号里还想套单引号,则单引号需要加转义字符(需要注意是该使用js的转义字符 还是HTml的转义字符)
&apos;是单引号的转义符,&quot;是双引号的转义符。

猜你喜欢

转载自blog.csdn.net/qq_36719449/article/details/82805497