你如何直接在html中引用javascript函数?

时间:2012-01-12 09:37:50

标签: javascript jquery

所以这个想法就是这样。我在js文件中有一个数组,以及一个引用该数组中随机元素的函数。我希望能够单击按钮,并且跨度中的文本将更改为数组中的随机元素。 我已经有办法做到这一点。我有一个id为“change_equivalently”的跨度。然后在javascript文件中,我有

var Equivalentlys = [
"Equivalently, ",
"Alternatively, ",
"Another way of saying this is that "
];

$('#shuffle').click(function() {
    var length = (Equivalentlys.length + 1);

    var x = Math.floor(Math.random()*length);

function Equivalently(i){
    return Equivalentlys[i];
};

$('#change_equivalently').text(Equivalently(x));

});

我的问题是,当我写出html代码时,我总是要编写

<span id = "change_equivalently"> ... </span>

为了能够在点击按钮时更改单词。

但我想要一个更简单的方法。 我试过像

这样的东西
  <var> Equivalently( 1 ) </var> 

看看我是否可以参考javascript函数,但它没有用。

我怎么能接近这个?

2 个答案:

答案 0 :(得分:3)

首先,您目前使用的方法是更好而不是您想要的方法 - 它将表示与功能分开,被广泛认为是最佳实践。

但是,可以(但是,正如我所说,可能不应该)包含单击元素时要调用的代码:

<span onclick="doStuff()"> blarg </span>

如果您只是希望能够将JavaScript代码转换为HTML(如PHP或类似的模板系统),那么您将无法使用JavaScript。

最终,最好的方法是使用span来标记内容并在脚本中添加click事件,就像您现在正在做的那样。这是最好的语义:在html中,你所说的只是那个特定的单词/位置是可以改变的;您在代码中指定 的更改方式。

答案 1 :(得分:1)

你是说这个吗?

<script type="text/javascript">
  Equivalently(1)
</script>