Как использовать переменную JavaScript в качестве значения атрибутов XHTML? - PullRequest
1 голос
/ 27 октября 2010

Я пробовал:

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

Но с помощью FireFox имя устанавливается в буквальную строку: "& {myVar};"вместо значения myVar ...

UDPATE: Я вижу, что это называется объектами JavaScript и давно не поддерживается - но должен быть способ, если можно включить JavaScriptнепосредственно в событиях (я понимаю, что атрибуты не являются событиями, поэтому JavaScript, вероятно, не оценивается) ..?!Это было бы намного лучше, чем жесткое кодирование значения, так как оно использовалось в другом месте, где бы это ни было много.

Ответы [ 4 ]

4 голосов
/ 27 октября 2010
var myInput = document.createElement('input');
myInput.setAttribute('name', myVar);

someContainElement.appendChild(myInput);
0 голосов
/ 27 октября 2010

Вот что вам нужно сделать.

Начните с того, что больше никогда не читайте учебники по JavaScript с сайта Java.Совершенно разные монстры, плюс учебники на сайте, на который вы ссылаетесь, ужасны.

Во-вторых, получите копию Javascript the Good Parts, http://www.amazon.com/dp/0596517742/ Эта книга, пожалуй, самая полезная книга из когда-либо написанных(на мой взгляд) о самом языке .В нем ничего не говорится о работе с DOM API.

Я призываю вас изучить сам язык, прежде чем углубляться в библиотеки javascript, такие как jQuery.Это принесет вам массу пользы раньше, чем позже.

Как только вы хотя бы немного освоите правильные способы использования javascript в качестве языка, начните вкладывать свое время в ту или иную библиотеку.jQuery, пожалуй, самая используемая, любимая и самая доброжелательная библиотека.Это значительно облегчит вам работу с кросс-браузерным дерьмом.

0 голосов
/ 27 октября 2010

И путь Фила и Ксенофлекса - лучший путь.На самом деле они делают одно и то же, просто разными способами: один использует jQuery, другой - чистый Javascript.

Алекс тоже будет работать, но тогда все будет жестко закодировано и несколько менее гибко для будущих изменений.Так как Алекс оставил свой ответ открытым, вы можете напечатать строку или присвоить ее переменной, которая будет добавлена ​​к объекту javascript.

Я думаю, что ближайшее совпадение с тем, что вы ищете, это:

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

Но, как я уже сказал, вы должны использовать один из первых двух подходов.

0 голосов
/ 27 октября 2010

Боюсь, вы должны использовать 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>
...