2

重複の可能性:
javascript を含むリンクを作成する

JavaScriptで生成しているHTMLタグに関数を入れようとしています。

私が持っているもの:

<script type="text/javascript">
    var html = '';
    html += '<div><a href="#" onclick="showBlock("#idTextBlocks");">Show Text Blocks</a></div>';
</script>

これshowBlock("#idTextBlocks");は、リンクがクリックされたときに表示する必要があるコンポーネントの ID を取得する JQuery 関数です。

function showBlock(id) {
    $(id).show('slow');
}

問題は、それが機能していないことです。次のように生成されます。

<a #idtextblocks");"="" onclick="showBlock(" href="#">Show Text Blocks</a>

引用符を'singe:に変更しようとしましonclick="showBlock('#idTextBlocks');たが、これはすべてのjavascriptを壊します。

問題は、タグ自体が JavaScript で生成されている場合、関数を HTML<a>タグの属性に正しく渡す方法です。onclick

4

5 に答える 5

1

一重引用符と二重引用符を組み合わせて使用​​する必要があります

変化する

onclick="showBlock("#idTextBlocks");"

onclick="showBlock('#idTextBlocks');"

関数にidを渡す代わりに、次のように関数内の必要な要素にアクセスできます。

function showBlock() {
    $('#idTextBlocks').show('slow');
}
于 2012-11-23T16:07:20.263 に答える
1

これに使用&quot;します:

"同じ問題が発生し&quot;、を使用するよりも安全なに置き換えることで修正しました\"

<script type="text/javascript">
    var html = '';
    html += '<div><a href="#" onclick="showBlock(&quot;#idTextBlocks&quot;);">Show Text Blocks</a></div>';
</script>
于 2012-11-23T16:09:09.340 に答える
1

とにかくjQueryを使用しています:

var $content = $('<div/>')
  .append('<a/>', {
    href: '#',
    click: function() { showBlock('#idTextBlocks'); },
    text: 'Show Text Block'
  });

$contentこれで、好きな場所に追加/先頭に追加できます。

于 2012-11-23T16:12:27.117 に答える
0
html = '<div><a href="#" onclick="showBlock("#idTextBlocks");">Show Text Blocks</a></div>';

html 変数に値を挿入するときに + 演算子を削除してみてください。html を空の文字列、特にテキスト文字列として宣言しただけなので意味がありません。(+= 演算子は、前の値に値を追加するために最もよく使用されます。

a = 1; 
a += 2; 
alert(a) //alerts 3
于 2012-11-23T16:18:46.173 に答える
0

これを試して:

<script type="text/javascript">
    var html = '<div><a href="#" onclick="javascript:showBlock(\'#idTextBlocks\');">Show Text Blocks</a></div>';
</script>
于 2012-11-23T16:10:18.573 に答える