Javascript jQuery不影响正确的项
我有一个表格,可在此处查看: 我有一些jQuery:Javascript jQuery不影响正确的项,javascript,jquery,wordpress,forms,Javascript,Jquery,Wordpress,Forms,我有一个表格,可在此处查看: 我有一些jQuery: <script type="text/javascript"> jQuery(document).ready(function() { jQuery('.ginput_container label').each(function(i,e){ fielddesc = jQuery('<div>').append(jQuery(e).clone()).remo
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('.ginput_container label').each(function(i,e){
fielddesc = jQuery('<div>').append(jQuery(e).clone()).remove().html();
jQuery(e).siblings('.ginput_container input:email').before(fielddesc);
jQuery(e).siblings('.ginput_container input:text').before(fielddesc); //moves sub label above input fields
jQuery(e).siblings('.ginput_container select').before(fielddesc); //moves sub label above select fields (e.g. country drop-down)
jQuery(e).siblings('.ginput_container .gfield_radio input').after(fielddesc); //keep label above radio buttons
jQuery(e).siblings('.ginput_container .gfield_checkbox input').after(fielddesc);
jQuery(e).remove();
});
});
</script>
似乎根本不起作用
(目前该网站本身已对此进行了评论。)
当我启用该行时,表单不会显示。当我禁用它时,一切正常(但“输入电子邮件”和“确认电子邮件”标签当然不会正确显示)
jQuery未运行时的代码如下所示:
<li id="field_3_3" class="gfield gfield_contains_required">
<label class="gfield_label" for="input_3_3">
Email
<span class="gfield_required">
*
</span>
</label>
<div class="ginput_complex ginput_container" id="input_3_3_container">
<span id="input_3_3_1_container" class="ginput_left">
<input type="email" name="input_3" id="input_3_3" value="" tabindex="17">
<label for="input_3_3">
Enter Email
</label>
</span>
<span id="input_3_3_2_container" class="ginput_right">
<input type="email" name="input_3_2" id="input_3_3_2" value="" tabindex="18">
<label for="input_3_3_2">
Confirm Email
</label>
</span>
</div>
</li>
电子邮件
*
输入电子邮件
确认电子邮件
似乎我的目标是正确的,我希望输入:电子邮件,并将当前位于输入下方的标签移动到输入上方。但是,显然我做错了什么。:电子邮件不是有效的:选择器--这是问题的根源
jQuery(e).同级('.ginput\u容器输入:email')
对于这两个输入,您可以使用id选择器:
jQuery(e).siblings('#input_3_3, #input_3_3_2')`
或通用:
jQuery(e).siblings('input[type=email]')
文本/电子邮件通用:
jQuery(e).siblings('input[type=email], input[type=text]')
吹毛求疵,e通常用于事件对象,这会使您的代码混乱。对不起,我对jQuery的理解很差:(就像@epascarello所说的,这是一个挑剔的问题,但当你进一步了解jQuery时,一定要记住它。尽管jQuery很简单,但你仍然需要时间来完全理解它。当我更改它时,页面根本不会加载。他没有选择它。他正在围绕内存分区创建一个jQuery包装器。基本上,我喜欢电子邮件标签“Enter email”和“确认电子邮件”显示在输入框上方而不是下方。更新上面的小提琴以反映您的更改。您使用上面的before()是正确的,但不需要删除before()之前的原始对象如果您提供元素,则移动dom中的对象。注意:电子邮件不是有效的选择器-选择器的完整列表在这里:--如果您想跳过ID并更通用,您可以这样做:
$('input[type=email]')
如果您希望这样做,首先是电子邮件+文本:$('input[type=email],input[type=text]')
jQuery(e).siblings('input[type=email], input[type=text]')