如何将 .change 函数从 jQuery 迁移到纯 Javascript
How to migrate a .change function from jQuery to plain Javascript
我不是JS专家,但我认为我想做的非常简单(至少在jQuery中)
我有 3 个选择
<select id="faq" class="onchance_fill">...</select>
<select id="pages" class="onchance_fill">...</select>
<select id="faq" class="onchance_fill">...</select>
和一个输入(它是 advlink 插件中的微小 MCE)
<input type="text" onchange="selectByValue(this.form,'linklisthref',this.value);" value="" class="mceFocus" name="href" id="href" style="width: 260px;">
我希望每次更改 3 个选择之一中的值时,该选项的该值都将放置在输入中。
在Jquery中,它将是这样的:
$('.ajax_onchance_fill').change(function() {
data = $('.ajax_onchance_fill').val();
$('#href').text(data);
});
但我不能使用它。那么普通的Javascript中的等价物是什么?
谢谢
我建议你继续使用 Jquery,因为它可以加速这种事情,但在纯 JavaScript 中,我认为你想要的东西看起来像这样......
<script type="text/javascript">
function load() {
var elements = document.getElementsByClassName('onchance_fill');
for(e in elements){
elements[e].onchange = function(){
document.getElementById('href').value = this.value;
}
}
}
</script>
document.getElementsByClassName("ajax_onchance_fill").onchange = function() {
getElementById('href').value = this.options[this.selectedIndex].text;
};
虽然我不确定它是否有效,因为getElementsByClassName
返回超过 1 个元素。
试试这个:
$('.ajax_onchance_fill').change(function() {
var data = $(this).val();
$('#mytextboxid').val(data);
});
好的,所以我意识到这个线程已经超过 8 年了,所以这个答案对于 OP(他们可能很久以前就想通了)来说并不重要,因为它适用于可能对这个特定主题感到好奇的其他人。
综上所述,这里有一个相对简单和可靠的方法,你可以在vanilla JS中完成它:
/**
* Since we need to listen to all three ajax_onchance_fill elements,
* we'll use event delegation.
*
*/
const targetLink = document.getElementById('href');
document.addEventListener('change', function(e) {
if (!!Element.prototype.matches) { // Let's make sure that matches method is supported...
if (e.target.matches('.ajax_onchance_fill')) {
targetLink.textContent = e.target.value;
}
} else { // and if not, we'll just use classList.contains...
if (e.target.classList.contains('ajax_onchance_fill')) {
targetLink.textContent = e.target.value;
}
}
});
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将javascript应用程序迁移到使用AMD的提示(例如requirejs)
- 在Google Apps上从JavaScript迁移到Python
- 从Google Maps JavaScript API V2迁移到V3,编码多边形
- 将Mootools迁移到prime或primish/使用JavaScript类的最佳方式
- 将JavaScript代码迁移到具有String.prototype扩展名的node.js模块
- 为什么我的内容在从 1.5.26 迁移后两次可见,而 JavaScript 在 Joomla 3.x 上无法正常工作
- 将 JavaScript 迁移到 PHP
- 将插件从Redmine 1.x迁移到2.x - Javascript不起作用
- 如何迁移单个 (php||JavaScript||..)文件在生产中没有时间限制
- 关于将web应用程序源代码从Coffeescript迁移到javascript的建议
- 服务器迁移后出现奇怪的javascript/json错误
- 解析1.5.0之前的Javascript sdk的迁移
- GWT:是否有可能先使用GWT开始项目,然后最终迁移到完整的javascript ?
- 将内联JavaScript迁移到外部文件
- 从Silverlight迁移到Html5/JavaScript
- Javascript 编译,用于将 D3 js v3 迁移到 v4
- 从具有简单Javascript前端的Java后端迁移到MEAN堆栈
- 如何将 .change 函数从 jQuery 迁移到纯 Javascript