You can roll your own... Here's a JSFiddle I through together. http://JSfiddle.net/VF8Dr/
CSS
.placeholder {
color: gray;
position: absolute;
padding-left: 10px;
}
JS
function addPlaceholder(id, text) {
var elm = document.getElementById(id);
var ph = document.createElement("SPAN");
ph.className = "placeholder";
ph.innerHTML = text;
elm.parentNode.insertBefore(ph, elm.nextSibling);
ph.style.left = elm.offsetLeft + 'px';
ph.style.top = elm.offsetTop + 'px';
ph.onclick = function() {
ph.style.display = 'none';
elm.focus();
};
elm.onfocus = function() {
if(ph.style.display != 'none')
ph.style.display = 'none';
};
elm.onblur = function() {
if(elm.value == '')
ph.style.display = '';
};
}
addPlaceholder("demo", "my text");
Очевидно, это экстенсивно не проверено, но если вы будете упрямы о не использовании структуры как jQuery (или просто предотвращение ненужного раздувания), но все еще захотите поперечный браузер и старую совместимость браузера, то это поможет вам добраться там.