2013-11-14 20 views
0

我试图找出应用更好的方法来改进代码吼 与更优雅的使用jQuery选择器。Jquery DOM操作Somenthing比那更好?

我的问题是,我有一个不同的用户消息,显示在我的应用程序的许多页面上的特定 div的用户,我选择了理想的选择器,并根据在一些价值 的值波纹管显示:

/*Javascript*/ 

if (var == value) { 
      msg = "Msg 1 <br>"; 
      msg = msg + "msg 1 continue... &nbsp;<br>" 
} else if (var == value2) { 
      msg = "Msg 2 <br>"; 
      msg = msg + "msg 1 continue... &nbsp;<br>" 
} 


if(msg != "") { 
    document.getElementById('IdSelector').style.display = 'block'; 
    document.getElementById('IdSelector').innerHTML=msg; 
} 

我的HTML5是波纹管显示:

<div> id="IdSelector" class="classMsg">&nbsp;</div> 

如何是更好的方法,模板引擎或战略来处理这个没有 吸。

我需要一些有效的代码示例,非常感谢。

+0

你应该检查出angularJS,它真的很适合这些类型的任务。 – edward

回答

2

您可以将数据-id属性添加到您的HTML元素像这样:

<div data-id="1" class="classMsg">&nbsp;</div> 

然后在你的JavaScript代码,做类似于克里斯推荐的东西,如:

$('.classMsg').each(function(_, element) 
{ 
    var dataID = $(element).attr('data-id'); 

    switch(dataID) 
    { 
     case 1: 
      element.css('display', 'block').html('Message 1'); 
      break; 
     case 2: 
      element.css('display', 'block').html('Message 2'); 
      break; 
     ... 
    } 
}); 
1

只使用开关()

switch(var){ 
    case 1: 
    alert("My value is 1"); 
    break; 
    case "error": 
    alert("My value is (string) error"); 
    break; 
    default: 
    alert("default value"); 
    break; 
} 

只需更换警报()与您的代码。 希望这是你需要什么样的