1

我正在使用 JQuery 循环插件。

该插件会生成一个带有编号链接的图像滑块,以在图像之间进行交换。我想将编号链接更改为我自己的一些 HTML(例如:将“1”更改为“我的字符串”),所以我创建了:

$('#nav a').html(function(i, html) {
    return $.trim(html) == '1' ? '<h2>Lorem</h2>' : html;
    return $.trim(html) == '2' ? '<h2>Dolar Sit</h2>' : html;
    return $.trim(html) == '3' ? '<h2>Amet</h2>' : html;
    return $.trim(html) == '4' ? '<h2>Ipsum</h2>' : html;

});

这在 Fire Fox 中运行良好,但在 Chrome 中运行良好。我相信这是因为编号的链接不是原始 DOM 的一部分,因此 Chrome 很难返回查找和更改它。

有谁知道如何正确地做到这一点?

编辑:

我在 chrome 中看到的是:

1 2 3 4 5

我在 Fire Fox 中看到的(以及我想要实现的)是:

Lorem Dolar Sit Amet Ipsum

4

1 回答 1

0

在第一个之后,您的倍数returns无法访问return。这导致JS错误。

实现期望的便捷方法可能是:

LIVE DEMO

$(function(){ // DOM READY

    var definedText = {
        1 : "<h2>Lorem</h2>",
        2 : "<h2>Dolar Sit</h2>",
        3 : "<h2>Amet</h2>",
        4 : "<h2>Ipsum</h2>"
    };

    $('#nav a').html(function(i, html) {

      var trHTML = $.trim(html);
      return definedText[trHTML] || html;

    });

});

definedText 只是一个用于比较修剪后的 HTML 的对象。
如果未找到匹配项,则只会返回已经存在的 HTML。

于 2013-03-26T01:26:47.280 回答