javascript - 使用变量来定义元素

标签 javascript html forms

我的函数使用我在输入标签中定义的两个变量

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 放置在文本区域中选定的部分周围。 由于我想以相同的形式在其他文本区域中使用此函数,因此我尝试在此函数中使用另一个变量。不幸的是,这不起作用。

我尝试了很多变体。概念如下:

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

...

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

最佳答案

在 onClick 处理程序中,this 指的是被单击的对象。所以你可以简单地这样做:

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

该函数将接收对象,而无需从任何地方重新选择它:

function insert(aTag, eTag, input) {
    input.focus();
    ...
}
<小时/>

旁注:不显眼的事件处理程序优于内联。

关于javascript - 使用变量来定义元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26235318/

相关文章:

javascript - HTML、Javascript 中的自定义事件

php - 表单未向查询字符串发送任何数据

javascript - 所有选定复选框的 jQuery 数组(按类)

html - CSS Transform origin 在 Firefox 中不起作用

javascript - TypeScript - 'Element' 不可分配给 HTMLInputElement

javascript - 视差图像向左飞

php检查文本输入长度并根据长度更改另一个输入

javascript - AngularJs : How to get ng-repeat input/checkbox values on form submit?

javascript - 单击时可折叠表更改 V 形图标

javascript - 如何使用 AntiForgeryToken 将 MVC View 模型传递到 AJAX 调用中