【问题标题】:One changing JavaScript variable being displayed (and updated) in multiple locations in HTML在 HTML 的多个位置显示(和更新)一个不断变化的 JavaScript 变量
【发布时间】:2013-08-29 10:59:18
【问题描述】:

我有一些 javascript 将文本字段的字数返回到“字数”变量中。

我希望在整个 HTML 中显示“wordcount”变量(以及基于它的其他变量)。但在某种程度上,它们可以随着字数的变化而不断更新

例如您当前的字数是 10。您还有 5 个字。目前的成本是 10 英镑(1 英镑/字)。

我对 JavaScript 的奇迹还比较陌生,但我从网上阅读的内容中总结了以下内容...

  1. document.write 不受欢迎。
  2. getElementById 只允许我显示每个变量一次。
  3. jQuery 有一个.data 存储(和更新?)数据的功能 本地?

谁能指点我正确的方向?

谢谢, 安迪。

按要求编码...

<!DOCTYPE html>
<html>
<head>
<title>Word Count Test</title>
</head>
<body onload="countnow()">


<form method="POST" name="counter">

<script language="JavaScript">
var freebie_words = 15
var base_price = 10.00
var word_price = 0.50
var wordcount = 0
var additional_words = 0

function countnow(){
var formcontent=document.counter.userscript.value
var formcontent=formcontent.split(" ")
var wordcount=formcontent.length
var freebie_remaining=freebie_words-wordcount

if (wordcount>freebie_words)
{
  additional_words=wordcount-freebie_words
} else {
  additional_words=0;
}

if (wordcount<freebie_words)
{
  cost=base_price.toFixed(2);
} else {
  cost=(base_price+(additional_words*word_price)).toFixed(2);
}

document.getElementById("freebie_words").innerHTML = freebie_words;
document.getElementById("base_price") = base_price;
document.getElementById("word_price") = word_price;
document.getElementById("wordcount") = wordcount;
document.getElementById("freebie_remaining") = freebie_remaining;
document.getElementById("cost") = cost;

}
</script>

<table>
<tr>
<td width="100%">
<textarea rows="10" name="userscript" cols="60" onkeyup="countit()"></textarea>
</td>
</tr>
</table>

The base price is set to &#163;<span id='base_price'></span> for <span id='freebie_words'></span>.<br>
The base price limit is set to <span id='freebie_words'></span>.<br>
You have typed <span id='wordcount'></span> words.<br>
You have <span id='freebie_remaining'></span> free words left.<br>
That will be &#163;<span id='cost'></span>.
</form>

</body>
</html>

【问题讨论】:

标签: javascript jquery html variables dynamic


【解决方案1】:

从概念上讲,您可以这样做:

  • 创建一个在您的wordcount 更改时触发的函数。
  • 为具有您要更新的文本/数字的所有元素(span、div 等)指定一个类。
  • 使用 jQuery,您可以在函数内部使用:$('.mychangeclass').text(wordcount);

如果您发布一些 html,我可以根据您的代码进行回答。

【讨论】:

  • 谢谢。这是我的代码,因为 getElementById 限制,它开始分崩离析。 (2秒......只是想弄清楚我如何换行/编码。:S)
  • @AndyCheeseman,我看不到你的代码。您可以编辑问题并将其发布在问题中吗?
  • @AndyCheeseman,如果代码在那里,我可以帮助编辑你的答案,即使是未格式化的
  • @AndyCheeseman,检查这个例子,我稍微修改了代码,只是为了纠正一些不起作用的东西。链接:jsfiddle.net/uxucG
  • @AndyCheeseman,在这里进行了更新,更改了更多内容(jsfiddle.net/uxucG/2)。由于它们具有独特的功能,因此您需要更改的每一行都需要一个 elementId。我还加了一门课,因为你有你不能拥有的双重身份证。希望它有所帮助。我现在就去上班,但如果您需要更多帮助来发布新问题,我相信您会得到同样好的或更好的帮助 :)
猜你喜欢
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
  • 2020-10-04
  • 2021-07-18
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
相关资源
最近更新 更多