Привет.
Доступ к элементу по id -- это самый быстрый доступ. Если есть возможность использовать id, то всегда используйте.
onclick как атрибут для html элемента действительно уходит в прошлое, но onclick/click как событие никто еще не отменял.
Если вы работаете с чистым javascript, то вам в любом случае придется подписываться на это событие.
К примеру, вот так:
var el = document.getElementById("id");
el.addEventListener("click", modifyText, false);
Если вы используете jquery, то смысла использовать чистый javascript мало, так как есть более абстрактные методы типа
click() - Bind an event handler to the "click" JavaScript event, or trigger that event on an element. This method is a shortcut for .on( "click", handler ) in the first two variations, and .trigger( "click" ) in the third. The click event is sent to an element when the mouse pointer is over the element, and the mouse button is pressed and released.
on() - Attach an event handler function for one or more events to the selected elements
Из этих двух выбирайте, согласно описанию, тот, который более подходит.
Если вы используете какую-то другую библиотеку, то используйте методы привязки обработчиков событий из этой библиотеки, если таковые имеются.
Но на самом деле, все зависит от задачи. Вы задали слишком общий вопрос. В данном случае преимущества одного способа над другим несущественны. Выбирайте любой.