Javascript jQuery.on()问题,console.log()工作,但元素交互不工作';T
我正在Javascript jQuery.on()问题,console.log()工作,但元素交互不工作';T,javascript,jquery,dom,Javascript,Jquery,Dom,我正在$(document.ready(function(){…})中使用此代码: 发生的情况是console.log()正在工作,但是$quantity\u percent没有显示/隐藏 此外,如果我在函数的开头添加了一个警报(“test”)(就在e.preventDefault之后),这也不起作用,但console.log()继续起作用(它正确地记录了“未隐藏”) 编辑:相关HTML标记: <div id="flavours"> <div class="row flavo
$(document.ready(function(){…})
中使用此代码:
发生的情况是console.log()正在工作,但是$quantity\u percent
没有显示/隐藏
此外,如果我在函数的开头添加了一个警报(“test”)(就在e.preventDefault
之后),这也不起作用,但console.log()继续起作用(它正确地记录了“未隐藏”)
编辑:相关HTML标记:
<div id="flavours">
<div class="row flavour" id="flavour_1" style="display: block;">
<div class="form-group">
<div class="col-xs-12">
<fieldset>
<legend>Flavour 1</legend>
<div class="col-sm-4">
<label>Flavour Name</label>
<input type="text" value="" name="flavour_name[]" data-flavour-id="1" id="flavour_name_1" class="form-control autocomp" placeholder="Flavour name">
<input type="hidden" value="" name="flavour_id[]" id="flavour_id_1" class="form-control flavour_id">
<p class="flavour_info"></p>
</div>
<div class="col-sm-6">
<label>Flavour Quantity <a href="#" class="btn btn-link btn-xs toggle-quantity"><span class="fa fa-filter"></span> <span class="hidden-sm">Switch to </span>drops per ml</a></label>
<div class="input-group" id="quantity_percent">
<input type="text" class="form-control" id="flavour_percentage_1" name="flavour_percentage[]" placeholder="Flavour Quantity">
<span class="input-group-addon">%</span>
</div>
<div class="input-group" id="quantity_drops" style="display: none;">
<input type="text" class="form-control" id="flavour_drops_1" name="flavour_drops[]" placeholder="Flavour Quantity">
<span class="input-group-addon">drops/ml</span>
</div>
<p class="flavour_recommended_percentage"></p>
</div>
<div class="col-sm-2">
<label> </label>
<button class="btn btn-danger btn-block remove-flavour"><span class="glyphicon glyphicon-remove"></span> Remove</button>
</div>
</fieldset>
</div>
</div>
</div>
风味1
风味名称
风味量
%
滴/毫升
去除
$(this).parent()
是一个标签元素,它没有子元素.quantity\u percent
另外,quantity\u percent
是一个id,而不是一个类。使用ID选择器
所以使用
var $quantity_percent = $('#quantity_percent');
而不是
var $quantity_percent = $(this).parent().find('.quantity_percent');
注意:ID在HTML中必须是唯一的
编辑:根据OPs评论
我将其更新为类而不是ID(因为它位于动态增长的列表中)
用法
.parent()
以
为目标,因此它无法找到.quantity\u percent
提供相关的HTML标记。如果日志正常工作,那么上的就没有问题,一定是其他问题…请发布相关的HTML结构或最低演示…警报($quantity\u percent.length)
你得到了什么?如果0,则表示元素不存在。您还可以执行console.log($quantity\u percent)
以查看它是否确实可以找到元素。“console.log()正在工作”哪一个?两者都是?而且,quantity\u percent
是一个id而不是一个类。使用#
selectorI现在已将其更改为var$quantity_percent=$(this).最近('.col-sm-6')。查找('.quantity_percent')代码>但它仍然不起作用。我已经记录了$quantity\u percent
对象,它返回时带有:[prevObject:x.fn.x.init[0],上下文:a.btn.btn-link.btn-xs.toggle-quantity,选择器:“.quantity\u percent”,jquery:“2.0.3”,构造函数:函数…]`@a1phanumeric,使用$(“#quantity\u percent”)
抱歉-我是个扳手-我将它更新为类而不是ID(因为它在一个动态增长的列表中),现在工作正常!我有时真是个油炸圈饼。谢谢你的帮助!你知道为什么警报根本不起作用吗?(这并不紧急,我只是想知道为什么它似乎不起作用!)这看起来像是一个评论。那么解决办法是什么呢?
var $quantity_percent = $(this).parent().find('.quantity_percent');
var $quantity_percent = $(this).closest('.col-sm-6').find('.quantity_percent');