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");是 JQuery 函数,它获取单击链接后需要显示的组件的 ID。

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

问题是它不起作用。它生成为:

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

我试图将引号更改为'sing: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

试试这个:

<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 回答
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 回答