0

の関数名に動的 JavaScript 変数の値を追加する方法がわかりません<a href>

例えば:

var x =  document.getElementById('example').value // value is 6 now
<a href="javascript:function6();">+</a>

次のようにdocument.writeなります。

document.write('<a href="javascript:function"' + x + '();">Something</a>'

問題は、inner.html を使用する必要があることです。

私はそのようなコードを持っています:

<script type="text/javascript">

   function count(){ 
       var x = 1;
       document.getElementById('count').value = ++x;  
       var z = x + 4;
   }

   var ex = ("<a class=\"button6\" href=\"javascript:anotherfunction\" + z + '()'>Anything else<\/a>");

   function new(){
       document.getElementById("add").innerHTML += ex
   }
</script>
<table id="add">
  <tr>
    <td>
      <a class="button6" href="javascript:new();count();">+</a>
    </td>
  </tr>
</table>

「+」リンクは、次のように、href の関数名にカウンター値を持つ別のリンクを追加する必要があります。

<a class="button6" href="javascript:anotherfunction6();">+</a>

コードの最初の「+」リンクは、href の関数名にカウンター値を持つ 2 番目のリンクを追加する必要があるため、「+」リンクを 2 回クリックすると、追加されたコードは次のようになります。

<a class="button6" href="javascript:anotherfunction6();">+</a>
<a class="button6" href="javascript:anotherfunction7();">+</a>
...

しかし、うまくいきません。

4

3 に答える 3

0

コードを機能させるには、以下を修正する必要があります。

1) エスケープ シーケンス。

`var ex = '<a class="button6" href="javascript:anotherfunction' + z + "()\">Anything else<\/a>";`

2) 関数名。newはキーワードであり、関数名として使用できませんでした。

3) 可変スコープ。変数zは両方の関数から見えるようにするex必要があり、新しい参照を作成するたびに変数を設定する必要があります。

すべての修正後、コードは次のようになります。

var z = 0;
function count() { 
    var x = 1;
    document.getElementById('count').value = ++x;  
    z = x + 4;
}

function createButton() {
    var ex = '<a class="button6" href="javascript:anotherfunction' + z + "()\">Anything else<\/a>";
    document.getElementById("add").innerHTML += ex
}`

また、HTML コードを修正する必要があります。

<a class="button6" href="javascript:createButton();count();">+</a>

PS <a> で javascript を使用するのは、不適切なコード スタイルです。isのような一連の関数を生成することanotherfunctionNもお勧めできません。

于 2013-01-14T11:55:13.910 に答える
0

\" + z + '()する必要があります" + z + "'()。ただし、コードには他にも問題があるため、「機能しない」にはいくつかの理由がある可能性があります。

于 2013-01-14T11:33:23.257 に答える
0

あなたのコードを見て..コードを適切にエスケープしていないことがわかります..

これを試して

var ex = ("<a class=\"button6\" href=\"javascript:anotherfunction\"" + z + "'()'>Anything else<\/a>");
于 2013-01-14T11:35:20.347 に答える