【问题标题】:Add class or style if text in div appears如果出现 div 中的文本,则添加类或样式
【发布时间】:2016-11-29 01:36:18
【问题描述】:

我有这个我正在制作的订单。 现在,当有人放优惠券代码时,我想将旧价格的 div 应用于样式或类(直通),虽然我做对了......这就是我正在做的......有什么建议为什么它可能不起作用?警告:我对 javascript 真的很陌生....我一直在使用 CSS HTML,但 javascript 是另一回事。谢谢!

if ($('#grand_amount_value').length > 1){
    $("#Total_Amount_old_val").attr("style", "text-decoration:line-through");
}

【问题讨论】:

  • if ($('#grand_amount_value').length > 1) 。您确定要检查此长度是否大于 1?因为通常情况下,您应该检查该元素是否存在,这意味着长度为 1,不大于 1。
  • 试试if ($('#grand_amount_value').length){ $("#Total_Amount_old_val").attr("style", "text-decoration:line-through"); }
  • 谢谢。仍然不起作用......老实说,我真的不知道有什么问题。 ://
  • 您需要向我们提供有关您的方案的更多详细信息。有一点很清楚,当前代码只有在页面上存在 id 为 grand_amount_value 的元素时才会触发。如果此元素是在某些事件时动态添加的,则您还需要在将元素插入页面后触发此代码。
  • 是的,我认为那里的某些东西我丢失了...该元素在那里,但是在我单击按钮后出现的文本出现在此操作之后...document.getElementById("btn_applypromo").onclick = function() {myFunction() if ($('#grand_amount_value').length){ $("#Total_Amount_old_val").attr("style", "text-decoration:line-through"); } };我猜这里... .

标签: javascript jquery html styles


【解决方案1】:

这是我拼凑起来的一个例子来展示类似的工作:

https://jsfiddle.net/pj6xwhcy/3/

function strikeOldAmt() {
    var gav = $("#grand_amount_value");
    if (gav.length > 0 && gav.text() != "" ){
        // There is a GAV element and it is not empty, strike out the old amount!
        $("#Total_Amount_old_val").css("text-decoration", "line-through");
    }
}

注意:使用“style”属性还会清除您可能添加的任何其他自定义样式。如果 style 属性已经设置,使用css() 函数不会干扰。

【讨论】:

  • 这正是我想要的!谢谢!
【解决方案2】:

假设页面没有重新加载,您可以使用 setInterval 来检查元素是否存在。

var checkInterval = setInterval(function(){
if ($('#grand_amount_value').length){
    $("#Total_Amount_old_val").attr("style", "text-decoration:line-through");
    clearInterval(checkInterval);
}
},200);

【讨论】:

  • 这应用了样式......但即使 grand_amount_value 没有任何价值......但很奇怪。
  • 用 if ($('#grand_amount_value').val().length != 0){ 替换“if”语句,这将检查 1) #grand_total_value 是否存在和 2) 它的值不等于 null
【解决方案3】:

最简单的清洁方法

$(document).on('change','#grand_amount_value',function(){ 
    if ($('#grand_amount_value').val().length != 0){
    $('#Total_Amount_old_val').css('text-decoration','line-through');
    }
});

或者如果你需要持续检查

$(document).on('keypress','#grand_amount_value',function(){ 
        if ($('#grand_amount_value').val().length != 0){
        $('#Total_Amount_old_val').css('text-decoration','line-through');
        }
    });

Here a jsfiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 2016-04-30
    • 2020-02-10
    相关资源
    最近更新 更多