2013-03-30 72 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"]); 
});