javascript - 当我无法控制 html 时,如何向元素添加事件处理程序?

标签 javascript html

我有一个带有下拉列表和链接标记的页面。

我根本无法修改页面上的 html,但我可以向页面添加 JavaScript。

当用户从下拉列表中选择不同的语言选项时,我需要能够翻译 .goButton 元素的文本。

如何单独使用 JavaScript 来完成此任务?

<a class="goButton" ... >Send</a>

<select name="ddlLanguages" id="ddlLanguages" class="form-control">
    <option value="zh-CN">Chinese (Simplified, PRC)</option>
    <option selected="selected" value="en-GB">English (United Kingdom)</option>
    <option value="en-US">English (United States)</option>
    <option value="fr-FR">French (France)</option>
    <option value="de-DE">German (Germany)</option>
    <option value="it-IT">Italian (Italy)</option>
    <option value="pt-BR">Portuguese (Brazil)</option>
    <option value="es-ES">Spanish (Spain)</option>
</select>

最佳答案

尝试这样,您可以将每种语言的文本存储在选项元素中:

document.getElementById('ddlLanguages').addEventListener('change', function (elem) {
    document.querySelector("a.goButton").innerHTML =
        this.options[this.selectedIndex].getAttribute('data-action');
});
<select name="ddlLanguages" id="ddlLanguages" class="form-control">
  <option data-action='发送' value="zh-CN">Chinese (Simplified, PRC)</option>
  <option data-action='BritishSend' elected="selected" value="en-GB">English (United Kingdom)</option>
  <option selected data-action="AmericanSend" value="en-US">English (United States)</option>
  <option data-action="Envoyer" value="fr-FR">French (France)</option>
  <option data-action="Senden" value="de-DE">German (Germany)</option>
  <option data-action="Inviare"  value="it-IT">Italian (Italy)</option>
  <option data-action="Enviar" value="pt-BR">Portuguese (Brazil)</option>
  <option data-action="Enviar" value="es-ES">Spanish (Spain)</option>

</select>
<a onclick="fillSearch()" class="goButton">AmericanSend</a>

关于javascript - 当我无法控制 html 时,如何向元素添加事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32652421/

相关文章:

javascript - 更改模板标签后 John Resig 的微模板出现语法错误 <# {% {{ 等

javascript - mapbox map 层控件与 javascript

python - Selenium 按类查找元素破坏代码

html - 使用@font-face 规则

css - HTML5 视频在 Opera 和 Firefox 中不工作

javascript - 如何进行 worker 与 worker 的沟通?

javascript - 修改数据表 Vuetify 2.0 中的默认槽 isOpen

javascript - phantomJS : how to access console logs 中的自动化测试

html - Tinymce - 更改 anchor 标记内的代码 - 什么是配置设置

javascript - 调试慢速网页的工具/插件