我使用JavaScript的創建html元素的參數的JavaScript功能:調用具有從HTML
html_info += '<div class="row"><h4>'+ i +'. Patient: '+ key +'</h4>Date of birth: '+info[0]+'<br> Occupation: '+info[1]+'<br> Date of Test: ' + info[2]+ '<script type="text/javascript"> draw_chart(' + patient_test_info[key].right_eye +'); </script></div>';
document.getElementById('patient_display').innerHTML += html_info;
它正確地創建的元素和顯示存儲在info
陣列中的信息,但打電話到draw_chart()函數失敗。在將它作爲參數傳遞之前,我使用console.log打印了patient_test_info[key].right_eye
的內容,並且變量的內容都很好。但檢查html元素顯示patient_test_info[key].right_eye
未正確傳遞,只是空對象。
<script type="text/javascript"> draw_chart([object Object],[object Object],[object Object],[object Object]); </script>
我draw_chart()函數必須繪製在圖表中同一div作爲用於顯示內容info
所述一個。在獨立調用它時,它不會識別新創建的div,因此不會顯示任何內容。
function draw_chart(data) {
var chart = d3.cloudshapes.barChart()
.width(800).height(800);
for(var i=0; i<data.length; i++) {
var temp_value = data[i];
d3.select("#row")
.datum(temp_value)
.call(chart);
}
}
什麼是使用參數調用函數的正確方法?
不能像這樣傳遞對象,當使用字符串協調對象時,對象也會變成字符串,並且對象的字符串表示形式爲'[object Object]'。 問題是,爲什麼你插入一個腳本標籤,立即調用一個函數,爲什麼不直接調用函數呢? – adeneo
@adeneo我試過了,'html_info + = \t'
'+ i +'. Patient: '+ key +'
Date of birth: '+info[0]+'Occupation: '+info[1]+'
Date of Test: ' + info[2]; draw_chart(patient_test_info[key].right_eye) +'
你沒有得到它,爲什麼你在字符串中包含函數,你已經在執行javascript,爲什麼不直接調用函數,爲什麼你必須插入到DOM然後調用它,當你可以稱呼它的方式 – adeneo