$(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;
}
在页面上,我在for循环中有多个<div class="jWinBackFrom"><?php echo $optimum['cWinBackFrom'][$i]; ?></div>
。
想象一下<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中获取值,并使用相关图像切换数值。
有人可以告诉我,如果我这样做(意味着正确的方法)这是最有效的(可能不是)那么这是什么?
我需要为许多其他领域重复这个过程。我的理论是,让DB返回一个像1这样的简单值并使用jQuery动态构建页面会更快。
我很感激帮助!谢谢!
答案 0 :(得分: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];
});
});
答案 1 :(得分: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数组而不是普通的对象。您只需要将索引从0
开始,而不是1
。