在HTML中,我有一些图像和javascript函数。
<img onmouseover="repl()" class="EN" ... />
<img onmouseover="repl()" class="FR" ... />
...
当用户在图像上时。我想根据所选语言更改标题文本。
我需要一种方法在javascript中对我的函数的发送者进行“引用”。 但我不知道因为我多年没有使用过javascript。请帮帮我!
function repl() {
// Missing Solution
// var lang = sender.attr("class"); <= Please correct me
var headerText = "";
if (lang == 'FR') {
headerText = "Cliquez sur le drapeau"
} else {
headerText = "Click on flag"
}
答案 0 :(得分:6)
最好的解决方案是使用addEventListener
绑定事件。为所有图像提供相同的类,选择它们,然后添加事件。我还建议使用data-*
attributes来存储语言。
<img class="repl" data-lang="EN" ... />
<img class="repl" data-lang="FR" ... />
然后在你的JavaScript中:
window.onload = function(){// Make sure DOM is ready
// Get the images
var imgs = document.getElementsByClassName('repl');
// Loop over them
for(var i = 0, len = imgs.length; i < len; i++){
// Add the event
imgs[i].addEventListener('mouseover', function(){
// Get the language. "this" is the element we hovered over
var lang = this.getAttribute('data-lang');
var headerText = "";
if (lang == 'FR') {
headerText = "Cliquez sur le drapeau"
} else {
headerText = "Click on flag"
}
});
}
};
答案 1 :(得分:2)
首先,您需要将发件人发送到您的函数:
<img onmouseover="repl(this)" class="EN" ...
然后:
function repl(sender) {
//you have the element that sent the event
var lang = sender.getAttribute('data-lang');
var headerText = "";
if (lang == 'FR') {
headerText = "Cliquez sur le drapeau"
} else {
headerText = "Click on flag"
}
}
答案 2 :(得分:0)
var lang = this.getAttribute('class');
您应该使用“data-lang”属性。
答案 3 :(得分:-1)
function repl() {
var lang = navigator.language || navigator.userLanguage; //this will fetch the current browser language
var headerText = "";
switch (lang) {
case 'fr':
document.getElementById('your_id').innerHTML = "Cliquez sur le drapeau";
break;
default:
document.getElementById('your_id').innerHTML = "Click on flag"
}