2014-10-17 90 views
0

我正在嘗試更改「h3」標籤之間的文本。新文本應該從json文件中移出。但是,當json文件中的字段被正確讀取時,程序無法找到「h3」元素。 這裏是JSON文件的一部分:爲什麼我找不到ID?

var teachers=JSON.parse(string_teachers); 
var i; 
var T_name; 
var Subject; 
for (i=1; i<teachers.Teachers.length+1; i++) { 
    T_name=teachers.Teachers[i-1].T_name; 
    Subject=teachers.Teachers[i-1].Subject; 
    var str="#"+i; 
    $(str).find("h3").text(T_name); 
} 

和HTML的一部分:

<div class="grid" id="1"> 

    <img src="teachers/bobr.jpg"> 
    <h3 >Боброва Даша</h3> 
    <p>Математический анализ</p> 
</div> 
<div class="divider"> 
<img src="views/divider.png" > 
</div> 
<div class="grid" id="2"> 
    <img src="teachers/korolev.jpg"> 
     <h3>Королев Даня</h3> 
     <p>Программирование 1</p> 
    </div> 
+0

的JSON是好的,我已經在網上檢查服務 – 2014-10-17 21:40:08

+0

找到是從jQuery不純的json確定你有那個庫嗎? – meda 2014-10-17 21:41:07

+0

您確定這是您的確切代碼。因爲'(str).find(「h3」)'應該拋出'undefined不是函數'或類似的東西,因爲'str'是一個字符串,而一個字符串沒有'find'函數。 – 2014-10-17 21:42:23

回答

2

看起來你缺少jQuery函數。在這裏:

(str).find("h3").text(T_name); 

使用它:

$(str).find("h3").text(T_name); 

我錯過了一些在JSON,尤爾的問題是:DOM是沒有裝載然而,當您試圖訪問它

function foo() { 

var string_teachers = '{"Teachers":[{"T_name":"value1", "Subject": "value2"},{"T_name":"value2",   "Subject": "value2"}]}' 

var teachers = JSON.parse(string_teachers); 
var i; 
var T_name; 
var Subject; 
for (var i = 0; i < teachers.Teachers.length; i++) { 
    T_name = teachers.Teachers[i].T_name; 
    Subject = teachers.Teachers[i].Subject; 
    var str = "#" + (i+1); 
    console.log(str) 
    $(str).find("h3").html(T_name); 
} 
} 
$(document).ready(foo) 
+0

好趕上我只是注意到了這個 – meda 2014-10-17 21:44:52

+0

對不起,這是我不正確的代碼粘貼。當然,我有這個功能,所以$現在不能解決問題:-( – 2014-10-17 21:54:26

+0

你正在循環JSON錯誤,JSON不是一個數組,所以它沒有.length屬性。我將編輯我的帖子,添加一些代碼 – afmeva 2014-10-17 22:12:32