var replace = $ ("<li>"). text ($ (this) .text ()). get (0);Средства? - PullRequest
1 голос
/ 11 июля 2010

Это пример jQuery. Но я не получил часть ниже:

var replacement = $("<li>").text($(this).text()).get(0); 

Оригинальный код:

var mappedItems = $("li").map(function (index) {
  var replacement = $("<li>").text($(this).text()).get(0);
  if (index == 0) {
    // make the first item all caps
    $(replacement).text($(replacement).text().toUpperCase());
  } else if (index == 1 || index == 3) {
    // delete the second and fourth items
    replacement = null;
  } else if (index == 2) {
    // make two of the third item and add some text
    replacement = [replacement,$("<li>").get(0)];
    $(replacement[0]).append("<b> - A</b>");
    $(replacement[1]).append("Extra <b> - B</b>");
  }
  // replacement will be an dom element, null, 
  // or an array of dom elements
  return replacement;
});
$("#results").append(mappedItems);

Есть комментарии?

Ответы [ 2 ]

2 голосов
/ 11 июля 2010

Методы jQuery обычно возвращают объект jQuery, чтобы их можно было объединить в цепочку.Таким образом, выражение делает то же самое, что и:

var x = $("<li>");
x.text($(this).text());
var replacement = x.get(0);

Создает новый элемент li, который обернут в объект jQuery, устанавливает текст элемента, а затем получает сам элемент из jQuery.объект.

1 голос
/ 11 июля 2010

Также стоит упомянуть, .get() возвращает DOM element. Поскольку объекты jQuery хранятся в массивах («объекты, похожие на массивы»), вы также можете получить доступ к базовому DOM element, вызвав

var replacement = $('<li>')[0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...