Получить значение div по идентификатору - Javascript - PullRequest
2 голосов
/ 13 апреля 2011

Я пытаюсь получить значение моего div в Javascript. Это веб-сайт Drupal, и я хочу конвертировать валюты и отображать их во всплывающем окне javascript.

Пока у меня есть это:

<?php 
        print "<script type='text/javascript'>";
        $rate=currency_api_convert("HKD", "CNY");
        print "exchangerate = ".$rate["value"].";";

        print "var $displaycur = getElementById('record-price');";
        print "$displaycur;";

        print "</script>";
?>

И все, что я получаю в своих браузерах:

<script type="text/javascript">
        exchangerate = 0.8406;var  = getElementById('record-price');;
</script>

Хотя я знаю причину, по которой он отображается так, я все еще не знаю, как получить идентификатор div в правильной переменной. Есть идеи? Должен ли я использовать innerHTML?

UPDATE: Часть исходных файлов: page.tpl.php

<?php
// $Id: page.tpl.php,v 1.18.2.1 2009/04/30 00:13:31 goba Exp $
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
  <head>
    <?php print $head ?>
    <title><?php print $head_title ?></title>
    <?php print $styles ?>
    <?php print $scripts ?>
    <?php 
        // lets get the exchange rate from HKD to RMB, with the help of yahoo finance api and the currency api module
        // we pass the value to javascript, the tooltip will handle the rest
        print "<script type='text/javascript'>";
        $rate=currency_api_convert("HKD", "CNY");
        print "exchangerate = ".$rate["value"].";";
        print "</script>";
    ?>
    <script type="text/javascript">
        function showCurrency() {
            alert('$rate');
        }
    </script>
    <!--[if lte IE 7]>
      <?php print phptemplate_get_ie_styles(); ?>
    <![endif]-->

        <!--[if IE 6]>
            <style type="text/css">
                .fg-menu-ipod .fg-menu li { width: 95%; }
                .fg-menu-ipod .ui-widget-content { border:0; }
                .views-field-field-performer-value { margin-left:-150px;}
                .views-field-field-instruments-value { margin-left:-150px;}
                .coda-nav{display:block; position:absolute; width:400px;height:20px;top:260px;right:100px;z-index:125421;}  </style>
        <![endif]-->


  </head>
  <body<?php print phptemplate_body_class($left, $right); ?>>

И node-record.tpl.php :

print '<div id="part1-right-line3">';   
    print '<div id="record-price">';                                                        
    print uc_currency_format($node->sell_price);
    print '</div>';                     
    print '</div>'; 
    print '<div id="part1-right-line4">';   
    print '<div id="add-to-cart">';     
    print drupal_get_form('uc_product_add_to_cart_form_'. $node->nid, $node);
    print '</div>'; 
    print '</div>';
    print '</div>';

А вот и вывод: enter image description here Пожалуйста, скажите мне, если вам нужно больше, потому что есть :) Заранее спасибо

Ответы [ 2 ]

1 голос
/ 13 апреля 2011
<?php 
   print "<script type='text/javascript'>\n";
   $rate=currency_api_convert("HKD", "CNY");
   print "exchangerate = ".$rate["value"].";\n";
   print "var displaycur = document.getElementById('record-price');\n";
   print "alert(displaycur.innerHTML);\n";
   print "</script>\n";
?>

Полагаю, 'рекордная цена' - это идентификатор вашего DIV ... поэтому displaycur.innerHTML будет иметь все от <div> до </div>.


РЕДАКТИРОВАТЬ:
function showCurrency() {
  alert(document.getElementById('record-price').innerHTML);
  }
1 голос
/ 13 апреля 2011

Вы определили $displaycur в своем коде PHP? Также должно быть document.getElementById.

Обновление: Все, что вам нужно от PHP - это обменный курс. Вы можете делать все остальное в JavaScript:

<script type="text/javascript">
var exchangerate = <?php echo currency_api_convert("HKD", "CNY"); ?>;
var div = document.getElementById('record-price');
var price = parseInt(div.innerHTML);

// convert and display
alert(price * exchangerate);
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...