2015-09-22 5 views
1

Мне нужно получить .innerHTML из div, у которого есть SMARTY Variable as ID.document.getElementById с переменной SMARTY

Это выглядит следующим образом:

<div id="{$products_data.IMAGE}">{$products_data.QTY}</div> 

Что я пытался до сих пор и не работает по какой-то причине это:

test = document.getElementById("{$products_data.IMAGE}").innerHTML; 

Каждый имеет опыт работы с Smarty и JavaScript?

+0

Я подозреваю, что 'id' не похоже, что после загрузки страницы. Попробуйте взглянуть на 'div' в инструментах разработчика. –

+3

Этот код будет в порядке. Это будет работать только тогда, когда javascript находится в том же .tpl, что и код smarty, так ли это? Или вы загружаете JavaScript из другого файла? В этом случае JavaScript не может прочитать переменную Smarty. –

+0

Ну, на самом деле эти два не находятся в одном и том же. Кажется очень логичным, что это не tworking, потому что, когда они собираются вместе, javascript ищет переменную smarty, которая уже была преобразована в вывод HTML в этот момент. Я не знаю, как их собрать вместе. –

ответ

1

Используйте глобальную переменную JavaScript в файле .tpl, чтобы передать значение из Smarty.

В файле .tpl:

<script> 
// Global variables 
var smartyDivId = "{$products_data.IMAGE}"; 
</script> 

В .js файла:

if (typeof smartyDivId != undefined) { 
    test = document.getElementById(smartyDivId).innerHTML; 
} 
Смежные вопросы