在JavaScript中,您可以有多種方法將字符串傳遞給函數。但是哪一個是最正確的方法呢?將字符串傳遞給javascript函數的正確方法是什麼?
eg 1 <a onclick='myfunction("mystring")'>1</a>
eg 2 <a onclick="myfunction('mystring')">1</a>
編輯 我不認爲這是一個重複的問題,值得一downvote。這個問題是在一個JavaScript內處理code
。這是關於從HTML到代碼的調用。
在JavaScript中,您可以有多種方法將字符串傳遞給函數。但是哪一個是最正確的方法呢?將字符串傳遞給javascript函數的正確方法是什麼?
eg 1 <a onclick='myfunction("mystring")'>1</a>
eg 2 <a onclick="myfunction('mystring')">1</a>
編輯 我不認爲這是一個重複的問題,值得一downvote。這個問題是在一個JavaScript內處理code
。這是關於從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>
所以現在你剛剛要找出何處是storeyour在<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雙引號進行插值),所以只需選擇一個約定。我更喜歡在默認情況下使用單引號,並使用雙引號,表明暴露於用戶的字符串(這些字符串可能需要在未來的翻譯,等等)
是什麼讓你覺得有一個「最正確」的方式? –
我會使用後者 - HTML中的屬性值建議使用雙引號,所以堅持。理想情況下,雖然你的JS應該在一個單獨的文件 – Bojangles
你傳遞一個字符串像任何其他參數(它並不重要的參數是什麼值)。如果你問是否應該使用''''或'''作爲字符串文字,那麼無關緊要(只要最終的源代碼有效)。 –