次のアプローチのいずれかをお勧めします。
$('input:text').each(
function(i,el) {
if (!el.value || el.value == '') {
el.placeholder = 'placeholdertext';
/* or:
el.placeholder = $('label[for=' + el.id + ']').text();
*/
}
});
を使用した JS Fiddle デモel.placeholder = 'placeholdertext'
。
を使用した JS Fiddle デモel.placeholder = $('label[for=' + el.id + ']').text()
。
または、配列を使用してさまざまなプレースホルダーを格納できます。
var placeholders = ['Email address', 'favourite color'];
$('input:text').each(
function(i,el) {
if (!el.value || el.value == '') {
el.placeholder = placeholders[i];
}
});
JS フィドルのデモ。
特定の要素に特定のプレースホルダーを指定するには:
var placeholders = {
'one' : 'Email address',
'two' : 'Favourite color'
};
$('input:text').each(
function(i,el) {
if (!el.value || el.value == '') {
el.placeholder = placeholders[el.id];
}
});
JS フィドルのデモ。
特定の のプレースホルダー オブジェクトにエントリが存在しない場合のキャッチ/フォールバックを追加しましたinput
。
var placeholders = {
'oe' : 'Email address', // <-- deliberate typo over there
'two' : 'Favourite color'
};
$('input:text').each(
function(i,el) {
if (!el.value || el.value == '') {
el.placeholder = placeholders[el.id] || '';
}
});
JS フィドルのデモ。