2017-07-07 34 views
2

大家晚上好!如何使用JavaScript更改基於onclick的文本?

那麼,我現在正在學習JavaScript,並且根據點擊的文本(按鈕,...我沒想到,沒關係),我重新找到了需要的地方。

例如:

該消息應被編輯。

兩種選擇:ES - EN

如果點擊選擇 「ES」/選擇,則:

此消息已被編輯到ES。

否則,如果點擊選擇 「EN」/選擇,則:

此消息已被編輯到EN。

我認爲這可以用腳本來實現,但問題在於如何告訴腳本選擇了哪個選項,如果是「ES」或「EN」。

我有這樣的:

<p id="demo">This message should be edited.<p> 
<a href="#" id="ES" onclick="func();">ES</a> - <a href="#" id="EN" onclick="func();">EN</a> - <a href="#" id="JP" onclick="func();">JP</a> 

正如我所說的,問題是,我不知道怎麼跟已被點擊/選擇什麼樣的腳本。

非常感謝您給我提供的任何幫助(如果可能的話,解決方案或解決方案的解釋將會很棒,因爲我想學習和理解,而不是解決這個問題而不能解決相同的問題或類似問題在未來)。

回答

1

您可以通過一個該函數的參數例如

function fun(lang){ 
    If(lang === "ES"){ 
     Do something 
    }else If(lang === "EN"){ 
     Do something 
    } 
} 

當你罵你的函數把這樣的事情:

的onClick = 「樂趣( 'ES')」 或的onClick =「樂趣( 'EN')

注:代替如果你可以在你的功能中使用switch語句fun(lang)

+0

這真的是訣竅,我正在尋找。我正在尋求通過一個論點,所以如果可以有一個正確的比較。問題是我怎麼通過一個論點,答案是「有趣('ES')」,'ES'是我的錯,因爲我沒有把它放在那裏。對我來說太糟糕了!非常感謝你。 –

2

通過this在您的func(),這將允許您訪問當前點擊的元素。

var text = "This message should be edited to "; 
 
function func(ele){ 
 
    console.log(ele.innerHTML); 
 
    document.getElementById('demo').innerText = text + ele.innerText + "."; 
 
}
<p id="demo">This message should be edited.<p> 
 
<a href="#" id="ES" onclick="func(this);">ES</a> - <a href="#" id="EN" onclick="func(this);">EN</a> - <a href="#" id="JP" onclick="func(this);">JP</a>

+1

如果意圖只是改變一些零件,但如果在我的情況下(我沒有指定,對此感到抱歉!),這可以工作,我想用它作爲多語言腳本。例如,將HTML的完整語言從EN更改爲ES。無論如何謝謝你! –

3

通行證this你函數獲得點擊元素。

然後設置爲id給你p標記使用innerHTML

參見例如

function func(ele){ 
 
    var demo = document.getElementById('demo'); 
 
    demo.innerHTML = "This message should be edited to "+ele.id+"."; 
 
}
<p id="demo">This message should be edited.<p> 
 
<a href="#" id="ES" onclick="func(this);">ES</a> - <a href="#" id="EN" onclick="func(this);">EN</a> - <a href="#" id="JP" onclick="func(this);">JP</a>

0

var text = 'This message has been edited to '; 
 

 
function func(e){ 
 
document.getElementById('demo').innerHTML = text+e.id+'.'; 
 
}
<p id="demo">This message should be edited.<p> 
 
<a href="#" id="ES" onclick="func(this);">ES</a> - <a href="#" id="EN" onclick="func(this);">EN</a> - <a href="#" id="JP" onclick="func(this);">JP</a>

你可以通過this從那裏值可以作爲一個點擊事件,並添加到您的結果

+0

謝謝,但Jiovani說的是我正在尋找的東西。無論如何,這可以工作! –

0
// Using JavaScript 

// Firstly we get the demo element 
var demo = document.getElementById("demo"); 

// When an element on the document si clicked 
document.onclick = function(event) 

// if the target element has an id of "ES" change demo content to spanish 
    if (event.target.id == "ES") { 
    demo.innerHTML = "Spanish or EspagnolText"; 

    } else if (event.target.id == "EN") { 

// else if element has an id of "EN" change demo content to english 
    demo.innerHTML = "English Text"; 
    } 
} 
+0

這也可以起作用,但我認爲按照Jovani解釋的方式更容易。無論如何謝謝你! –

0

使用Switch Case的另一種方法。

HTML:

<p id="demo">This message should be edited.<p> 
<a href="#" id="ES" onclick="func(this.id);">ES</a> - <a href="#" id="EN" onclick="func(this.id);">EN</a> - <a href="#" id="JP" onclick="func(this);">JP</a> 

的JavaScript:

var text = 'This message has been edited to '; 

function func(value) { 
    var selectValue=""; 

    switch (value) { 
     case "EN": 
      selectValue = "EN"; 
     break; 

     case "ES": 
      selectValue = "ES"; 
     break; 

     case "JP": 
      selectValue = "JP"; 
     break; 
} 

document.getElementById('demo').innerHTML = text + selectValue + '.'; 
} 

注:Anchor Tag標籤定義一個超鏈接,用於鏈接從一個網頁到另一個。

相關問題