在 javascript 中,您可以有多种方法将字符串传递给函数。但是哪一个是最正确的方法?
eg 1 <a onclick='myfunction("mystring")'>1</a>
eg 2 <a onclick="myfunction('mystring')">1</a>
编辑
我不认为这是一个值得反对的重复问题。这个问题是code
在 javascript 中处理的。这是关于从 html 到代码的调用。
在 javascript 中,您可以有多种方法将字符串传递给函数。但是哪一个是最正确的方法?
eg 1 <a onclick='myfunction("mystring")'>1</a>
eg 2 <a onclick="myfunction('mystring')">1</a>
编辑
我不认为这是一个值得反对的重复问题。这个问题是code
在 javascript 中处理的。这是关于从 html 到代码的调用。
老办法是
<a onclick="myfunction('mystring')">1</a>
但这有很多限制。
我认为将字符串(变量)传递给 javascript 的最正确方法是:
与 clickevents 交互的一种新方法是在您的 javascript 代码中添加事件侦听器。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
window.onload=function(){
var handler=function(e){//define your function (click handler)
console.log(e,this);// contains the event details and the clicked element details
}
var a=document.getElementsByTagName('a')[0]; // with this line i get the first a
a.addEventListener('click',handler,false);// add the click lisstener
}
</script>
</head>
<body>
<a>1</a>
</body>
</html>
所以现在你只需要找出在哪里存储你的字符串的最佳位置<a>1</a>
在标题中
<a title="mystring">1</a>
要在您的处理程序中获取此信息,您只需编写this.title
以获取字符串
锚内
<a>mystring</a>
要在您的处理程序中获取此信息,您只需编写this.innerText
以获取字符串
还有一种将信息存储在元素内部的新方法,称为数据集
<a data-string="mystring">1</a>
要在您的处理程序中获取此信息,您只需编写this.dataset['mystring']
以获取字符串
就像我说的那样,它还传递了事件细节……在里面你也可以找到元素。
最常见的方法是目标:
e.target.title
e.target.innerText
e.target.dataset['string'];
使用此 addEventListeners 允许您添加多个单击事件......或者在另一方面,它允许您通过单击来处理多个元素。
两者都是完全可以接受的变体,只需与您用于最外层引用的内容保持一致。我更喜欢 JS 中的单引号。
两者基本上是等价的。在编码内联属性时,我更喜欢使用第二个版本,因为使用双引号来表示属性更常见:
<img src="path/to/image">
在纯 Javascript 代码中,内联 HTML 中的单字符串和双字符串是完全等价的(不同于 PHP 或 Perl 的双引号进行插值),所以只需选择一个约定。我更喜欢默认使用单引号并使用双引号来指示向用户公开的字符串(这些字符串将来可能需要翻译,等等)