簡體   English   中英

javascript:object對象而不是set =(

[英]javascript: object Object instead of value from set =(

因此,我試圖基於下拉過濾器來繪制相同的數據,但是我並沒有過去將數據存儲到傳遞給繪圖函數的變量中。 我的警報給出了object Object ,但是它不應該是totalValue (在此示例中)嗎?

HTML

   <select id="performance_chart_filter">
  <option value="totalValue">Total by Value</option>
  <option value="openValue">Open by Value</option>
  <option value="declinedValue">Declined by Value</option>
  <option value="acceptedValue">Accepted by Value</option>
</select>

JavaScript

$j("#performance_chart_filter").change(function(){
    plotWithChoice();
});



function plotWithChoice() {
   var d = {
        "totalValue": {
            label: "Total",
            clickable: true,
            hoverable: true,
            data: <%= @total %>
        }
.
.
.
};

    var filter = $j("#performance_chart_filter");
    var data = [d[filter.val()]];
alert(data);

filter.val()最有可能是字符串"totalValue"

d[filter.val()] (或d["totalValue"] )將是對象d的屬性totalValue的值,該對象dalert的對象,因此是alert的輸出Object object ,因為這是的默認字符串表示形式這樣的通用對象。

並且[d[filter.val()]]是一個數組,其中一個元素即上述對象。

要進行調試,建議您使用調試器(例如Firebug),因為它可以以可讀形式顯示對象。

或使用.toSource()方法:

alert(data.toSource());

如果d對象的所有成員都與所示成員相似,並且d在范圍內,則alert(data)將始終顯示“ object Object”。

如果filter.val()為“ totalValue”,則數據將為對象:

{
  label: "Total",
  clickable: true,
  hoverable: true,
  data: <%= @total %>
}

它沒有顯式的toString方法,因此將使用默認的toString

嘗試alert(data.label) ,希望它會顯示“ Total”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM