2014-10-07 65 views
1

我的函數使用兩個變量,我在我的輸入標籤使用一個變量來定義元素

function insert(aTag, eTag) { 
var input = document.forms['form'].elements['textarea']; 
input.focus(); 
... 
} 

定義...

<input type="button" name="bold" value="bold" onClick="insert('<b>', '</b>')"> 

將會把ATAG和ETag的功能選擇左右textarea中的部分。 因爲我想以相同的形式在其他textareas中使用此函數,所以我嘗試在此函數中使用另一個變量。這不幸地不起作用。

我嘗試了很多變體。關於喜歡這裏的概念:

function insert(aTag, eTag, selectInput) { 
var input = document.forms['form'].elements[selectInput]; 

...

<input type="button" name="bold" value="bold" onClick="insert('<b>', '</b>', 'thistextarea')"> 
+1

混合html和js是一個不好的做法。嘗試使用javascript事件偵聽器,如document.querySelector('input [name =「bold」]')。addEventListener('click',function(){...},false); – iovis 2014-10-07 11:53:52

+0

目前還不清楚你想要做什麼。您不會顯示那些'b'標籤用於什麼,我不確定您在「textarea中選定的標籤」是什麼意思。一個textarea包含文本,而不是HTML - 也許你的意思是你的textareas包含未解析的HTML,我不確定。 – Utkanos 2014-10-07 11:55:24

回答

0

在onclick處理程序,this是指被點擊的對象。因此,你可以簡單地做:

<input type="button" name="bold" value="bold" onClick="insert('<b>', '</b>', this)"> 

功能將接收對象不從任何地方重新選擇它:

function insert(aTag, eTag, input) { 
    input.focus(); 
    ... 
} 

邊注:不顯眼的事件處理程序是首選的內聯。

相關問題