2013-03-30 102 views
0

我試圖用name屬性的內容替換page_title div。以下是我目前爲止的內容,但不起作用。我是新來的jQuery的任何幫助。我正在使用jQuery Mobile。用函數替換HTML元素

<script> 
var siteData = { 
    "name": "Site Name", 
    "logo": "", 
    "theme": "b", 
    "fullSiteLink": "http://www.google.com", 
    "pages": [{ 
      "id": "1364668689503", 
      "name": "Page Title", 
      "type": "basic", 
      "components": { 
       "img": "", 
       "text": "Page content" 
      } 
     }, 
    }] 
} 
</script> 

UPDATE

$(document).ready(function(siteData) { 
    //site name 
    $('#page_title').html(siteData["name"]); 
}); 
+0

嘗試siteData [「名稱」],而不是網站[「名稱」] – yckart

+0

所以我已經更新的問題,但它仍然沒有在名字從JSON拉。相反,它現在在html標記中是空白的。 – MarkO

+2

在你的問題中沒有任何與JSON相關的東西。 JSON是*數據交換格式*,如XML。你有一個簡單的對象文字。請具體說明*「不起作用」*。這不是一個有用的問題/錯誤描述。 –

回答

2

這裏的工作的jsfiddle例如:http://jsfiddle.net/Gajotres/gMAf3/

$(document).on('pagebeforeshow', '#index', function(){  
    $(this).find('[data-role="header"] h3').html(siteData.name); 
}); 

    var siteData = { 


     "name": "Site Name", 
      "logo": "", 
      "theme": "b", 
      "fullSiteLink": "http://www.google.com", 
      "pages": [ 
     { 
      "id": "1364668689503", 
      "name": "Page Title", 
      "type": "basic", 
      "components": { 
       "img": "", 
       "text": "Page content" 
      } 
     }  ] 


    } 

不要使用文件準備與jQuery Mobile的,頁面插入之前,通常會引發DOM。要找到更多關於這個問題,請看看這個ARTICLE,或找到它HERE

+1

鑑於你沒有改變HTML,爲什麼不簡單地使用['text()'](http://api.jquery.com/text/)? –

+0

在這種情況下,我可以使用它,因爲它是一個純文本。 html()的原因只是爲了安全起見,人們通常不理解text()和html()之間的區別。所以當他們開始用text()動態構建jQM頁面時,就會出現問題。 – Gajotres

+2

好吧,因爲它[沒有任何顯着的區別],無論如何,我猜並不值得擔心。真是好奇,真的。 =) –

1
$(document).ready(function() { 

    // Declare the object here 
    var siteData = {....}; 

    // Set the title 
    $('#page_title').text(siteData["name"]); 
});