如何将JavaScript变量用作XHTML属性值?

时间:2010-10-27 04:13:07

标签: javascript firefox xhtml xml-attribute string-substitution

我试过了:

<!--...-->
<script type="text/javascript">
  var myVar = "some string";
</script>
<!--...-->
<input name="&{myVar};" ... />
<!--...-->

但是使用FireFox,名称设置为文字字符串:“&amp; {myVar};”而不是myVar的值......

UDPATE:我看到这个称为JavaScript实体并且很长一段时间都没有得到支持 - 但如果可以直接在事件中包含JavaScript(我意识到属性不是事件,所以JavaScript可能没有评估)..?!它比硬编码的价格要好得多,因为它使用了很多......

4 个答案:

答案 0 :(得分:4)

var myInput = document.createElement('input');
myInput.setAttribute('name', myVar);

someContainElement.appendChild(myInput);

答案 1 :(得分:0)

我担心你必须使用Javascript来操纵html元素。 您可以使用jQuery来简化这一过程:

<script src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<input id="myInput" .../>
<script>
    var myVar = "value";
    $("#myInput").attr("name", myVar);
</script>

答案 2 :(得分:0)

菲尔和Xenoflex的方式都是更好的方式。他们实际上是以不同的方式做同样的事情,一个使用jQuery和另一个纯Javascript。

亚历克斯也会工作,但后来所有内容都是硬编码的,而且对未来的变化不太灵活。 Alex打开答案的方式可以打印字符串或将其分配给要附加到javascript对象的变量。

我认为与你正在寻找的最接近的匹配是:

<script type="text/javascript">
  var myVar = "some string";
</script>
...
<script type="text/javascript">
  document.write('<input name="' + myVar + '" ... />')
</script>

但正如我所说,你应该采取前两种方法之一。

答案 3 :(得分:0)

这是你需要做的。

从不再从Java站点读取javascript教程开始。完全不同的怪物,加上你引用的网站上的教程是可怕的。

其次,获取Javascript好部件的副本,http://www.amazon.com/dp/0596517742/ 这本书可能是有史以来关于语言本身的最有用的书(在我看来)。它没有说明处理DOM API的事情。

我鼓励你在深入研究jQuery这样的javascript库之前先学习一下这门语言。它会尽快给你带来好处而不是以后。

一旦您至少熟悉使用javascript作为语言的正确方法,就可以开始将时间投入到一个或另一个库中。 jQuery可能是最常用,最受欢迎,最善良的库。它将使您更容易处理跨浏览器废话。