代码之家  ›  专栏  ›  技术社区  ›  BasvdPol

根据Jquery中的H2文本切换图像

  •  0
  • BasvdPol  · 技术社区  · 13 年前

    我对jQuery这件事很陌生。 我正在尝试在kentico CMS中创建一个网站,我想要的是根据 h2 标头内容。因此,每个不同的页面都会得到不同的图像。

    我试过了 .addClass , .css 和 .attr 但似乎什么都不起作用。我尝试过的jQuery如下:

    $(document).ready (function() {
    {
    
    var title = $('h2').text(); 
    
    switch(title)
    {
        case 'About us':
            $('.contentHeader').addClass('contentAbout')
            break;
        case 'Education':
            $('.contentHeader').css('background-image','url(/edu.png)')
            break;
        case 'Projects':
            $('.contentHeader').attr('src','/projects.png')
            break;
        case 'Benefits':
            $('.contentHeader').attr('src','/benefits.png')
            break;
        default:
    
    }
    
    
    
    )};
    

    所以基本上我想把标题改为 edu.png 如果 氢 的text=教育。

    1 回复  |  直到 13 年前
        1
  •  2
  •   Roko C. Buljan    13 年前

    尝试改变 )}; 到 }); 最后一行,如果你不需要 default: ,不要使用它。

    同时删除 { 来自2号线(谢谢Peter)

    $(function() { // DOM ready (shorthand)
    
        var title = $('h2').text(); 
    
        switch(title){
            case 'About us':
                $('.contentHeader').addClass('contentAbout');
                break;
            case 'Education':
                $('.contentHeader').css('background-image','url(/edu.png)');
                break;
            case 'Projects':
                $('.contentHeader').attr('src','/projects.png');
                break;
            case 'Benefits':
                $('.contentHeader').attr('src','/benefits.png');
                break;
        }
    
    });
    

    您也可以这样做:

    $(function(){ 
    
      var title = $('h2').text(); 
    
      var changes = {
        'About us'  : ['addClass', 'contentAbout'],
        'Education' : ['css',      {backgroundImage: "url(/edu.png)"}],
        'Projects'  : ['attr',     {src: "/projects.png"}],
        'Benefits'  : ['attr',     {src: "/benefits.png"}]
      };
    
      var method = changes[title][0];
      var valu   = changes[title][1];
    
      $('.contentHeader')[method](valu);
    
    });