2017-03-08 2 views
2

私は非常に似たような操作を行う複数のボタンがあります。 <select>と1つの<button>のボックスを使用して、JavaScriptを少なくして同じことを行うにはどうすればよいですか?"同義"を複数に変換<Button>汎用関数への関数<Select>

これらは、私はちょうどボタン一つで<select>ボックスに変身するボタンです:ここでは

<button onclick="SaveAsHTML()">Save As HTML</button> 
<button onclick="SaveAsJS()">Save As JS</button> 
<button onclick="SaveAsCSS()">Save As CSS</button> 
<button onclick="SaveAsTXT()">Save As TXT</button> 

は、今の私のjavascriptです:

function SaveAsHTML() 
{ 
    var filename = document.getElementById("txtFilename").value; 
    var filename = filename + ".html"; 
} 

function SaveAsCSS() 
{ 
    var filename = document.getElementById("txtFilename").value; 
    var filename = filename + ".css"; 
} 

function SaveAsJS() 
{ 
    var filename = document.getElementById("txtFilename").value; 
    var filename = filename + ".JS"; 
} 

function SaveAsTXT() 
{ 
    var filename = document.getElementById("txtFilename").value; 
    var filename = filename + ".txt"; 
} 
+0

を見上げる私の答えを短くしていただき、ありがとうございます。コードについて話すとき、私の英語はそれほど良くないと思います。ありがとう... @jcuenod – SeekLoad

答えて

1

ここでスニペットですが、私はそれが多くの説明を必要とは思わない。

ファイルタイプの配列を作成し、<select><option>を入力するためにjqueryを使用しました。その後、私はちょうど...あなたはsaveボタンをクリックしたときに選択される1

var types = [ 
 
    {"extension": "html", "name": "HTML"}, 
 
    {"extension": "txt", "name": "Plain Text"}, 
 
    {"extension": "js", "name": "Javascript"}, 
 
    {"extension": "css", "name": "CSS"}, 
 
] 
 
types.forEach(function(type) { 
 
    $opt = $("<option>").attr("value", type.extension).text(type.name) 
 
    $("#saveas").append($opt) 
 
}) 
 

 
function SaveAsType() 
 
{ 
 
    console.log($("#saveas").val()) 
 
    /** 
 
    * Put your code here and replace: 
 
    document.getElementById("inputFileNameToSaveAs").value + ".html"; 
 
    * with 
 
    document.getElementById("inputFileNameToSaveAs").value + "." + $("#saveas").val(); 
 
    */ 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Save as <select id="saveas"> 
 
</select><button onclick="SaveAsType()">save</button>

+0

おかげで仲間。それは完璧に動作します。今は "jquery"を使わずにそれを行う方法があるのだろうか?そうでなければjqueryを使いますが、可能であればjqueryから独立させたいと思っています。悲しいことに私はあなたに名声を与えることができません。評判が15以上必要です。今は11歳です。これは、このページを使い始めたばかりのためです。私はこのアカウントを以前から持っていましたが、今まで使ったことはありませんでした。 – SeekLoad

+0

@SeekLoad jqueryなしでこれを行うのは簡単です - 私は ''要素を作成することができます。 jqueryで質問をタグ付けしたのでjqueryを使用しました。 – jcuenod

+0

@SeekLoadまた、私はあなたの質問を編集して、今後より良い質問をする方法を示しました。コードを本質的なものに減らそうとすると、質問にもっと簡単に答えることができます。可能であれば、他人が恩恵を受けることができるような質問をしてください。 – jcuenod