Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据影响div中所有类的类更改$(此)输入字段颜色_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 根据影响div中所有类的类更改$(此)输入字段颜色

Javascript 根据影响div中所有类的类更改$(此)输入字段颜色,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的HTML在一个页面上多次出现: <div class="canteen-item"> <div class="col-l"> <h4>Chicken Sandwich</h4> <p>$<span class="canteen-price">3.50</span></p> </div> <div class="col-r"&

我的HTML在一个页面上多次出现:

<div class="canteen-item">
    <div class="col-l">
        <h4>Chicken Sandwich</h4>
        <p>$<span class="canteen-price">3.50</span></p>
    </div>
    <div class="col-r">
        <div class="qty-days">
            <input name="Mon" class="qty-input" value="0" maxlength="2" />
            <input name="Tue" class="qty-input" value="0" maxlength="2" />
            <input name="Wed" class="qty-input" value="0" maxlength="2" />
            <input name="Thu" class="qty-input" value="0" maxlength="2" />
            <input name="Fri" class="qty-input" value="0" maxlength="2" />
        </div>
    </div>
</div>

它的行为非常不可预测。当我更改第一个输入字段(星期一)的值时,它使所有5个输入都变为红色。然后有时它会在完全不同的一行一组的日子里把颜色改回黑色。似乎是一个需要解决的简单问题,但很难解决。

问题在于以下代码:

var qty = $(this).val();
返回一个字符串。这段代码将该字符串与一个数字进行比较

if(qty > 0){
尝试将第一行代码更改为:

if ($(this).val()) {
    var qty = parseInt($(this).val(), 10);
}

它应该开始更加一致地工作,但您还需要验证输入是否都是数字。

使用更改事件目标来访问元素

$(文档).ready(函数(){
$(“.qty输入”).change(函数(e){
var目标=e.target;
变量数量=$(目标).val();
如果(数量>0){
$(target.css('color','red');
}否则{
$(target.css('color','black');
}
警报(“值为”+数量)
});
});

鸡肉三明治
3.50美元


感谢所有回复。这促使我更深入地挖掘,在这一点上,我在另一个JS文件中发现了另一段试图(错误地!)做同样事情的代码。我上面的代码实际上是正确的,并且工作得非常完美。我为在这里浪费任何人的时间而道歉。我没有意识到我的客户有一个开发人员已经尝试过这样做(而且他也把代码放在了错误的文件中)。

当你重复那块HTML时,你是在复制ID吗。你的代码运行得很好。我也测试过,它似乎运行得很好。工作很好!在复制ID时似乎也可以正常工作,不确定您的问题是什么…我最初有var qty=parseInt($(this).val())。。。但这没有什么区别,这没有区别。同样的问题。Opps-以后忘记引用目标
if ($(this).val()) {
    var qty = parseInt($(this).val(), 10);
}