3
  $(document).ready(function() {
    //set all logo images based on data returned from database
    var WinBack = $('div.jWinBackFrom').html();
    switch(WinBack) {
        case '1': //If database returns 1 : set Verizon FiOS logo
        $('div.jWinBackFrom').prepend('<img id="WinBackLogo" src="<?php echo site_url();?>/assets/images/verizon-fios-logo.jpg" />');
        break;

        case '2': //If database returns 2 : set DirecTV logo
        $('div.jWinBackFrom').prepend('<img id="WinBackLogo" src="<?php echo base_url();?>assets/images/directv-logo.jpg" />');
        break;

        case '3': //If database returns 3 : set DISH Network logo
        $('div.jWinBackFrom').prepend('<img id="WinBackLogo" src="<?php echo base_url();?>assets/images/dish-network-logo.jpg" />');
        break;
    }

在页面上,我有多个<div class="jWinBackFrom"><?php echo $optimum['cWinBackFrom'][$i]; ?></div>for 循环。

所以想象一个输出<div class="jWinBackFrom">1</div><div class="jWinBackFrom">2</div>, <div class="jWinBackFrom">3</div>, <div class="jWinBackFrom">2</div>, <div class="jWinBackFrom">1</div>``<div class="jWinBackFrom">3</div>,<div class="jWinBackFrom">1</div> 基本上都是随机的。jQuery 需要从所有这些 DIV 中获取值,并使用相关图像切换数值。

有人可以告诉我我是否做得对(意味着正确的方法)这是最有效的(可能不是)那是什么?

我需要对许多其他领域重复这个过程。我的理论是让数据库返回一个像 1 这样的简单值并使用 jQuery 动态构建页面会更快。

感谢您的帮助!谢谢你!

4

2 回答 2

2

我对PHP一无所知,但我倾向于将您的选项添加到数组中,并查找索引。

var choices = [
    "", // Apparently nothing at index 0
    '<img id="WinBackLogo" src="<?php echo site_url();?>/assets/images/verizon-fios-logo.jpg" />',
    '<img id="WinBackLogo" src="<?php echo base_url();?>assets/images/directv-logo.jpg" />',
    '<img id="WinBackLogo" src="<?php echo base_url();?>assets/images/dish-network-logo.jpg" />'
]

$(document).ready(function() {
    $('div.jWinBackFrom').html(function(i, htm) {
        return choices[htm];
    });
});
于 2013-04-07T03:27:54.693 回答
0

在这样的情况/要求中,通常最好创建一个查找哈希

var hash = {
    1:   'verizon-fios-logo.jpg',
    2:   'directv-logo.jpg',
    3:   'dish-network-logo.jpg'
};

然后你可以去

$('div.jWinBackFrom').prepend('<img id="WinBackLogo" src="<?php echo site_url();?>/assets/images/"' + hash[ $('div.jWinBackFrom').html() ] + ' />');

事实证明,在您的情况下,您几乎可以使用普通的Javascript Array而不是普通的Object。您只需要使索引开始于0而不是1.

于 2013-04-07T03:26:10.813 回答