问号在这个函数中意味着什么?

时间:2011-08-11 09:01:15

标签: javascript jquery

这是这个插件的文档(只有两个功能。) http://tkyk.github.com/jquery-history-plugin/#documentation

$(document).ready(function() {
    function load(num) {
        $('#content').load(num +".html");
    }

    $.history.init(function(url) {
        load(url == "" ? "1" : url);
    });

    $('#ajax-links a').live('click', function(e) {
        var url = $(this).attr('href');
        url = url.replace(/^.*#/, '');
        $.history.load(url);
        return false;
    });
});

这是html:

<body>
  <h1>jQuery History Plugin Ajax Sample</h1>
  <div id="ajax-links">
    <ul>
      <li><a href="#1">load 1.html</a></li>
      <li><a href="#2">load 2.html</a></li>
      <li><a href="#3">load 3.html</a></li>
    </ul>
    <div id="content"></div>
    <hr />
  </div>
  <p>[<a href="../">All samples</a>] [<a href="http://github.com/tkyk/jquery-history-plugin">Project home</a>]</p>
</body>

3 个答案:

答案 0 :(得分:25)

load(url == "" ? "1" : url);

这里的问号是一个三元运算,简而言之,它是一个简短的内联if陈述

扩展了,声明看起来像这样:

if (url == "")
    load("1");
else
    load(url);

如果问号前的语句的计算结果为true,则使用冒号的左侧,否则(如果为false)则使用右侧。你也可以嵌套它,虽然它并不总是一个好主意(为了便于阅读)。

答案 1 :(得分:5)

简写:

If (url == ""){
   load("1");
}
else {
   load(url);
}

IE中。如果url等于"",则返回"1",否则返回url

在您的示例中,如果url等于"",则会加载1.html,否则将加载url + ".html"

答案 2 :(得分:2)

相关问题