0

私はコーディングにかなり慣れていないので、Chrome プラグインを作成してウェブサイトに機能を追加する方法を学ぼうとしています。私はこれに対する答えを見つけるのに苦労しており、検索してかなりの数の異なるオプションを考え出しましたが、私が求めているものを作成するために理解できるものは何もありません.

私が探しているのは、5 つの異なるボタンのクリックをカウントし、「送信」ボタンを介してテキストエリアに送信できるスクリプトです。

[A] [B] [C] [D] [E] [送信]

したがって、ボタンAを2回、Cを1回、Eを3回クリックしてから「送信」をクリックすると、テキストエリアに送信され、「Counted A2 C1 E3」と表示され、クリックされていないものはすべて無視されます。おまけとして、テキストがテキストエリアに送信されると、自動的に送信される可能性はありますか?

これが理にかなっていることを願っており、私が得ることができるかもしれない助けを楽しみにしています.

よろしく、 パジンガ

4

3 に答える 3

1

このコードの方が優れています。好きなだけボタンを付けることができます。

更新: キーがソートされていないバグを修正 (例: E3 C1 A2 のカウント)

<html>
<head>  
<script>
    var list = {};
    function increaseCounter(variable) {
        if(!list[variable])
            list[variable]=1;
        else
            list[variable]++;
    }
    function send() {
        var keys = [];
        for(x in list)
            keys.push([x,list[x]]);
        keys.sort();

        var s = "Counted", i;
        for( i = 0; i < keys.length; i++)
            s += " " + keys[i][0] + keys[i][1];
        document.getElementById('textarea').value = s;
    }
</script>
</head>
<body>
<textarea id="textarea"></textarea>

<button onclick="increaseCounter('A')">A</button>
<button onclick="increaseCounter('B')">B</button>
<button onclick="increaseCounter('C')">C</button>
<button onclick="increaseCounter('D')">D</button>
<button onclick="increaseCounter('E')">E</button>

<button onclick="send()">Send</button>
</body>
</html>
于 2013-04-20T12:05:39.553 に答える
1

ここで可能な解決策を見つけることができます: http://jsfiddle.net/jrm2k6/gv8vZ/

ご都合に合わせて変更できます。

使用したhtmlは次のとおりです。

<button type="button" id="a">A</button>
<button type="button" id="b">B</button>
<button type="button" id="c">C</button>
<button type="button" id="d">D</button>
<button type="button" id="e">E</button>
<textarea rows="5" cols="40" id="results">
</textarea>

そしてjs部分:

var buttonClicked = {"a":0, "b":0, "c":0, "d":0, "e":0};

$("button").click(function() {
  $("#results").text('');
  var clickedId = $(this).attr('id');
  buttonClicked[clickedId] +=1
  displayCounter();
});

function displayCounter()
{

    for(var elem in buttonClicked)
    {
        if (buttonClicked[elem] != 0)
        {
            $("#results").append(elem + " clicked " + buttonClicked[elem] + "\n");
        }
    }
}

編集:これはうまくいきますが、TNWは別のアプローチ、より一般的な方法を提供しました。ここにフィドルがありますhttp://jsfiddle.net/xRMRP/

于 2013-04-20T12:05:43.677 に答える