javascript - 获取Category过滤控件的类型

标签 javascript if-statement getelementbyid google-visualization dashboard

我有一个简单的 Google 可视化仪表板,其中包含以下代码。

<!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">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>
      Google Visualization API Sample
    </title>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load('visualization', '1.1', {packages: ['controls']});
    </script>
    <script type="text/javascript">
      function drawVisualization() {
        // Prepare the data
        var data = google.visualization.arrayToDataTable([
          ['Name', 'Gender', 'Age', 'Donuts eaten'],
          ['Michael' , 'Male', 12, 5],
          ['Elisa', 'Female', 20, 7],
          ['Robert', 'Male', 7, 3],
          ['John', 'Male', 54, 2],
          ['Jessica', 'Female', 22, 6],
          ['Aaron', 'Male', 3, 1],
          ['Margareth', 'Female', 42, 8],
          ['Miranda', 'Female', 33, 6]
        ]);

        // Define a category picker control for the Gender column
        var categoryPicker = new google.visualization.ControlWrapper({
          'controlType': 'CategoryFilter',
          'containerId': 'control1',
          'options': {
            'filterColumnLabel': 'Gender',
            'ui': {
            'labelStacking': 'vertical',
              'allowTyping': false,
              'allowMultiple': false
            }
          }
        });

        // Define a table
        var table = new google.visualization.ChartWrapper({
          'chartType': 'Table',
          'containerId': 'chart1',
          'options': {
            'width': '300px'
          }
        });

        // Create a dashboard
        new google.visualization.Dashboard(document.getElementById('dashboard')).
            bind(categoryPicker,table).
            // Draw the entire dashboard.
            draw(data);
      }

      google.setOnLoadCallback(drawVisualization);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="dashboard">
      <table>
        <tr style='vertical-align: top'>
          <td style='width: 300px; font-size: 0.9em;'>
            <div id="control1"></div>
          </td>
          <td style='width: 600px'>
            <div style="float: left;" id="chart1"></div>
          </td>
        </tr>
      </table>
    </div>
  </body>
</html>

我想在我的 javascript 中使用 if 条件访问类别过滤器(假设我有 5 个类别过滤器相互绑定(bind))。也就是说,我想要类似的东西

function myfunction() {
    var whereClauses = [];
    if (categorypicker1.statechange) {
        whereClauses.push("something1 = '" + categorypicker1.changedstate + "'")
    }
    if (categorypicker2.statechange) {
        whereClauses.push("something2 = '" + categorypicker2.changedstate + "'")
    }
    whereClause = whereClauses.join(" AND ");

   //do something...
  }

但我无法获得正确的格式。那么使用 if 条件的正确格式是什么? ​

最佳答案

使 categoryPicker 对象在 drawVisualization 函数之外可访问,然后使用 getState().selectedValues 值:

var categoryPicker;
function drawVisualization() {
  // etc.
  categoryPicker = // etc...

  // Register to hear state changes.
  google.visualization.events.addListener(categoryPicker, 'statechange', foo);

  // etc.
}

function foo() {
  // Insert your if condition here.
}

关于javascript - 获取Category过滤控件的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17721749/

相关文章:

javascript - 如何清理/替换无法转义的 JS 字符串中的 $&(美元 + 符号)?

javascript - 用于显示图像的简单 jquery 灯箱

javascript - 同时设置 StreetView PanoramaId 和 POV 的正确方法?

java - 使用java firebase的android studio中的IF语句计数++

javascript - 通过部分 ID 为所有 div 重置样式,然后为特定的 div 设置样式

javascript - 选择 Ajax 回调

ios - 在 IBAction 中按下时为 UIButtons 显示不同的颜色以进行测验

python - Python 函数调用中的条件参数

html - 是否可以一次在多个 Canvas 上绘制?

javascript - 如何检查 DOM 中 div 的所有类名是否具有带有 vanilla Javascript 的特定字符串?