0

我在预先存在的代码中看到了以下语法。

$("#offers").children().last().html(
  $("#offers").children().last().html() + "!");

是否有更流畅的方法将一些文本附加到 HTML 中?还有更好的方法来重构以下内容吗?

$("#offers").children().last().html(
  "!" + $("#offers").children().last().html());

这个怎么样?

$("#offers").children().last().html(
  "!" + $("#offers").children().last().html() + "!");

我的建议如下,但我想看看是否有更整洁的东西。

var old = $("#offers").children().last().html();
var prefix = "";
var suffix = "";
$("#offers").children().last().html(suffix + old + prefix));
4

5 回答 5

5

您可以使用前置和附加

$('#offers').children().last().prepend("!");
$('#offers').children().last().append("!");
于 2013-11-05T09:34:30.550 回答
2

你可以这样做:

$("#offers").children().last().html(function(index, oldHtml){
    return oldHtml + '!';
});

或根据您的建议:

var prefix = "!";
var suffix = "!";
$("#offers").children().last().html(function(index, oldHtml){
    return suffix + oldHtml + prefix;
});
于 2013-11-05T09:34:37.600 回答
2

您可以简单地使用 jQuery 提供的“.append()”方法。(API 附加()

尝试:

$("#offers").children().last().append("!");
于 2013-11-05T09:36:16.743 回答
1

尝试这样的事情

    // Simply remove one time from DOM.
     var elem = $("#offers").children().last();
     var old_html = elem.html();
     var prefix = "";
     var suffix = "";
     elem.html( suffix + old_html + prefix);
于 2013-11-05T09:42:15.510 回答
0

您可以使用方法获取 DOM 对象jQuery.get()并使用 good old innerHTML

$("#offers").children().last().get(0).innerHTML += "!";

或者你可以使用jQuery.append()

$("#offers").children().last().append('!');

在第二种情况下使用jQuery.prepend()

$("#offers").children().last().prepend('!');
于 2013-11-05T09:35:03.583 回答