使用 div 元素的文本作为 jQuery 的占位符
Use div element's text as placeholder with jQuery
我有一个奇数problem/challenge。我使用的一个插件没有为他们的输入字段使用真正的占位符,而是使用输入字段下方的 div 元素,现在它来了,他们称之为占位符,非常奇怪。
所以我想用一些 jQuery 来操纵它,这对我来说是一个新的水平,所以我已经尝试了第一步。我希望看到 div 元素的文本被用作 input
的实际占位符。我显然可以用新属性调用每个输入并删除 div,但这使得每个 individual 输入有 20 行编码,我想要 1 个解决方案。所有输入字段有 2 个一致的 HTML 结构:
html
<div class="ps-form__field ">
<input type="email" name="email" id="email" class="ps-input email" >
<div class="ps-form__field-desc lbl-descript">email address</div>
</div>
<div class="ps-form__field">
<div class="ps-form__field-inner">
<input type="text" value="" id="profile_field_name" data-id="name" class="ps-input">
</div>
<div class="ps-form__field-desc lbl-descript">First name</div>
</div>
这是 class .ps-form__field-desc
,我想将其视为 input
的 placeholder
。
我的jQuery尝试
var txtph = jQuery('.ps-form__field-desc').parents().each().text();
if ( jQuery('.ps-form__field > div').length ) {
jQuery('.ps-form__field > input').each().attr('placeholder', txtph);
jQuery('.ps-form__field-desc').remove();
}
我知道上面可能有很多错误,但这对我来说是新的。
你可以使用这个:
$(document).ready(function() {
$('.ps-form__field input').attr("placeholder",function() {
return $(this).closest(".ps-form__field").find('.lbl-descript').text()
});
$('.lbl-descript').remove()
});
它将select每次输入并将placeholder
属性设置为相应的.lbl-descript
文本
工作演示
$(document).ready(function() {
$('.ps-form__field input').attr("placeholder", function() {
return $(this).closest(".ps-form__field").find('.lbl-descript').text()
});
$('.lbl-descript').remove()
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ps-form__field ">
<input type="email" name="email" id="email" class="ps-input email">
<div class="ps-form__field-desc lbl-descript">email address</div>
</div>
<div class="ps-form__field">
<div class="ps-form__field-inner">
<input type="text" value="" id="profile_field_name" data-id="name" class="ps-input">
</div>
<div class="ps-form__field-desc lbl-descript">First name</div>
</div>
我有一个奇数problem/challenge。我使用的一个插件没有为他们的输入字段使用真正的占位符,而是使用输入字段下方的 div 元素,现在它来了,他们称之为占位符,非常奇怪。
所以我想用一些 jQuery 来操纵它,这对我来说是一个新的水平,所以我已经尝试了第一步。我希望看到 div 元素的文本被用作 input
的实际占位符。我显然可以用新属性调用每个输入并删除 div,但这使得每个 individual 输入有 20 行编码,我想要 1 个解决方案。所有输入字段有 2 个一致的 HTML 结构:
html
<div class="ps-form__field ">
<input type="email" name="email" id="email" class="ps-input email" >
<div class="ps-form__field-desc lbl-descript">email address</div>
</div>
<div class="ps-form__field">
<div class="ps-form__field-inner">
<input type="text" value="" id="profile_field_name" data-id="name" class="ps-input">
</div>
<div class="ps-form__field-desc lbl-descript">First name</div>
</div>
这是 class .ps-form__field-desc
,我想将其视为 input
的 placeholder
。
我的jQuery尝试
var txtph = jQuery('.ps-form__field-desc').parents().each().text();
if ( jQuery('.ps-form__field > div').length ) {
jQuery('.ps-form__field > input').each().attr('placeholder', txtph);
jQuery('.ps-form__field-desc').remove();
}
我知道上面可能有很多错误,但这对我来说是新的。
你可以使用这个:
$(document).ready(function() {
$('.ps-form__field input').attr("placeholder",function() {
return $(this).closest(".ps-form__field").find('.lbl-descript').text()
});
$('.lbl-descript').remove()
});
它将select每次输入并将placeholder
属性设置为相应的.lbl-descript
文本
工作演示
$(document).ready(function() {
$('.ps-form__field input').attr("placeholder", function() {
return $(this).closest(".ps-form__field").find('.lbl-descript').text()
});
$('.lbl-descript').remove()
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ps-form__field ">
<input type="email" name="email" id="email" class="ps-input email">
<div class="ps-form__field-desc lbl-descript">email address</div>
</div>
<div class="ps-form__field">
<div class="ps-form__field-inner">
<input type="text" value="" id="profile_field_name" data-id="name" class="ps-input">
</div>
<div class="ps-form__field-desc lbl-descript">First name</div>
</div>