-1

在 javascript 中,您可以有多种方法将字符串传递给函数。但是哪一个是最正确的方法?

eg 1 <a onclick='myfunction("mystring")'>1</a>
eg 2  <a onclick="myfunction('mystring')">1</a>

编辑 我不认为这是一个值得反对的重复问题。这个问题是code在 javascript 中处理的。这是关于从 html 到代码的调用。

4

3 回答 3

2

老办法是

<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 允许您添加多个单击事件......或者在另一方面,它允许您通过单击来处理多个元素。

于 2013-07-07T18:59:27.500 回答
2

两者都是完全可以接受的变体,只需与您用于最外层引用的内容保持一致。我更喜欢 JS 中的单引号。

于 2013-07-07T18:44:31.717 回答
1

两者基本上是等价的。在编码内联属性时,我更喜欢使用第二个版本,因为使用双引号来表示属性更常见:

<img src="path/to/image">

在纯 Javascript 代码中,内联 HTML 中的单字符串和双字符串是完全等价的(不同于 PHP 或 Perl 的双引号进行插值),所以只需选择一个约定。我更喜欢默认使用单引号并使用双引号来指示向用户公开的字符串(这些字符串将来可能需要翻译,等等)

于 2013-07-07T18:45:16.227 回答