Ваш код getElementById()
работает, поскольку идентификаторы должны быть уникальными, и поэтому функция всегда возвращает ровно один элемент (или null
, если ни один не найден).
Однако getElementsByClassName()
, querySelectorAll()
и другие методы getElementsBy*
возвращают массивный набор элементов. Итерации над ним, как и с реальным массивом:
var elems = document.getElementsByClassName('myElement');
for(var i = 0; i < elems.length; i++) {
elems[i].style.size = '100px';
}
Если вы предпочитаете что-то более короткое, рассмотрите использование jQuery :
$('.myElement').css('size', '100px');
Это должно сработать. [@ G1]
{$myarray|@json_encode}
Если включена опция $ escape_html , вам нужно будет использовать nofilter
:
{$myarray|@json_encode nofilter}
Вы должны использовать json_encode()
в ur php-коде, а затем присваивать значение smarty с помощью функции $smarty->assign()
. После этого вам нужно проанализировать это значение в файле шаблонов ur с помощью javascript.
фрагмент кода:
{literal}
<script>
var json = JSON.parse('{/literal}{$urarray}{literal}');
//another statments
</script>
{/literal}
В то время как {$myarray|@json_encode}
действительно испускает массив, закодированный в json, он также ускользает от специальных символов, что делает массив непригодным для использования в javascript.
Чтобы избежать экранирования специальных символов и также иметь возможность использовать массив в javascript используйте флаг nofilter:
{$myarray|@json_encode nofilter}
{literal}
<script type="text/javascript">
<!--
var newVar ={/literal}{$myarray|@json_encode nofilter};{literal}
// -->
</script>
{/literal}
Мое решение
Я ничего не знаю. Вы можете присвоить результат json_encode () переменной smarty в вашем «php-коде» с помощью $ smarty-> assign (...), а затем использовать его в своем шаблоне.
Также есть расширение Smarty для json_decode (). Нетрудно написать собственное расширение для противоположного на основе этого.
{$myarray|@json_encode:64 nofilter}
оставил бы косые черты без экранирования. stackoverflow.com/a/27806269/2418655 – dhaupin 2 May 2017 в 17:43