artyfarty (arty) wrote,
artyfarty
arty

jQuery и коллбэки в сеттерах

Геттеры и сеттеры в jQuery выглядят весьма своеобразно:

$el.text() // геттер
$el.attr('name') // геттер
$el.text('foo') // сеттер
$el.attr('name', 'foo') // сеттер



И все бы ничего, но допустим мы хотим к аттру name что-нить дописать или не дай б-же сделать замену регексом.


$el.attr('name', $el.attr('name').replace(...)) // ГОВНО


Оказывается, в сеттер можно передавать коллбэк! Во-первых это значит что можно разумно менять значения группам элементов, а во-вторых, при помощи лямбд пример выше записать так:


$el.attr('name', (idx, attr) => attr.replace(...) ) // НЯШНОСТЬ


Итак, как взять и пронумеровать все абзацы? Да вот как:


$('p').text((idx, text) => idx + ". " + text) // ОХУЕННОСТЬ


Лямбды? В JS? Ну, они есть в новом ECMAScript и в TypeScript.
Tags: jquery
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment