【问题标题】:jQuery change class of a divjQuery更改div的类
【发布时间】:2013-07-17 19:51:34
【问题描述】:

我有一个简单的问题,我对此很陌生,但我不明白。我将数据绑定到标签 id=lbl_ArrFlt。当那个 num 改变时,我想改变它的父 div 的类。我怎么做?

 <li>
    <div class="top">
        <label>ARR FLT</label>
    </div>
    <div class="bottom">
        <label id="lbl_ArrFlt">{{ARRIVAL.FLT}}</label>
    </div>
</li>

我现在正在尝试这个

$("#lbl_ArrFlt").parent().attr("class", "top noton");

怎么了?

更多信息—— 有一个检查新数据的功能。如果有新数据

function highlightFor(){ 
    $("#lbl_ArrFlt").parent().attr("class", "top noton");
} 

【问题讨论】:

  • 是你的 javascript 包裹在 $(document).ready(function()...
  • 您的代码应该可以工作,除非它在 ​​DOM 加载之前执行。
  • 您的代码看起来不错:jsfiddle.net/j08691/VU8ZS。你是如何调用它的?
  • 如何检查 DOM 是否先加载?
  • 如果您阅读了人们为您制作的答案,您就会知道

标签: javascript jquery class html parent


【解决方案1】:

您可以在元素上使用addClassremoveClass 来执行此操作。如果您必须多次添加和删除一个类,toggleClass 可能对您有用。

【讨论】:

  • 他的代码没有问题。也许他想手动设置类属性?那么您的代码将无法正常工作。
  • 小心使用attr,因为有一些细节需要考虑。文档here.
  • 文档上说设置classattr不会有任何问题;它甚至会提醒您在“类”周围使用引号
【解决方案2】:

试试这个jQuery addClass()jQuery ready()

$(function() {

   $("#lbl_ArrFlt").parent().addClass("top noton");

});

还是原版

$(function() {
   $("#lbl_ArrFlt").parent().attr("class", "top noton");
});

这些代码块中的$(function(){..});document 准备就绪时被调用 那么我们可以肯定#lbl_ArrFlt存在

【讨论】:

  • 如果“top”已经存在,那么“noton”可能更有意义。
  • 好的。我不太清楚你的 CSS 是如何工作的,只要确保你知道这意味着你的
  • 下会有两个 div:
  • 我真的不需要知道。
【解决方案3】:

使用 addClass() 和 removeClass() jquery 方法

$(document).ready() {

   $("#lbl_ArrFlt").parent().addClass("top noton");

});

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签