如何使用jquery更改CSS?

如何使用jquery更改CSS?,jquery,css,Jquery,Css,我有以下由PHP动态生成的HTML。 单击“活动”时,它将变为“不活动”,反之亦然 我为jquery操作添加了div class='status'。(我需要它吗?没有这个div我能做吗?) 我想在单击active和inactive时将CSS class='status'更改为class='inactive',同时将CSS类更改为active',以便我可以更改颜色或添加bg图像等 HTML 。。。 ... 21 康塔克 /kontakt.html ... ... 我正在使用jquery,

我有以下由PHP动态生成的HTML。 单击“活动”时,它将变为“不活动”,反之亦然

我为jquery操作添加了div class='status'。(我需要它吗?没有这个div我能做吗?)

我想在单击active和inactive时将CSS class='status'更改为class='inactive',同时将CSS类更改为active',以便我可以更改颜色或添加bg图像等

HTML

。。。
...    
21
康塔克
/kontakt.html
...
...
我正在使用jquery,需要一些指导

谁能告诉我一些jquery代码吗

--更新--

有很多div带有calss='status',那么我如何告诉jquery我想要更改我单击的css呢

--更新2--

我想检查值(活动/非活动)。并将其值添加为类。e、 如果它的值是活动的,则添加css class='active',如果它是非活动的,则添加class='inactive'等。 我能做吗? 或者你有其他建议我应该怎么做

--更新3--

谢谢大家。你们太棒了。我测试了一些代码。但问题是,当我单击active时,它会更改bg,然后通过php/mysql刷新页面以更改为inactive。因此,这意味着每次单击值(活动/非活动)时都会发生更改。所以我认为,正如我在更新2中所说的,根据值添加css类可能是个好主意。 欢迎提出更多建议,我对此表示感谢。(我还没有用AJAX完成它…)

--更新4--

使用ID不是一个好主意,因为表是动态创建的。我可以添加ID,但它会添加更多代码。所以我觉得上课更好

--更新5--

我把问题移到这里


在这之后,我现在知道我想做什么了

jQuery的函数有toggleclass()、removeClass()和addClass()。这些应该对你有帮助

如果看不到整个HTML,建议一个选择器有点困难。如果您为您的div(例如mydiv)分配了一个id,那么您可以

$("#mydiv").removeClass('status').addClass('inactive');
或者只是随便翻动它们:

$("#mydiv").toggleClass('status').toggleClass('inactive');
这很好地利用了链接

编辑:为了响应更新,可以在div中使用onclick()函数来更改特定div的类

<div onclick="changeClass" id="myId"></div>
function changeClass() { 
   $(this).toggleClass('status').toggleClass('inactive'); 
}

函数changeClass(){
$(this.toggleClass('status')。toggleClass('inactive');
}

请测试该代码,但我认为这可能就是您要寻找的。

最简单的解决方案是在jQuery中使用内置的切换函数,这将允许您使用标准jQuery选择器语法切换指定类的状态:

$(this).toggleClass("inactive");

有关第一个问题的更多信息,请参见,您可能可以将该类移到所附的
(尽管背景图像在那里并不总是很好看)

要使用jquery添加/删除类,可以执行以下操作:

$('div.status').addClass('inactive');
$('div.status').removeClass('status');
或者,如果您希望在单击时启动它,请使用
toggleClass

$('div.status', 'div.inactive').live("click", function(){
    $(this).toggleClass("inactive").toggleClass("status");
        });

这也只会在您单击的特定div.status(或inactive)上触发。

如果您不想要您询问的div,您可以删除它并选择td内的所有链接(或将类添加到特定td标记并调整选择器:$('td.status'),以将选择范围缩小到仅限于这些链接)

注:

$(“td a”)将选择所有a标记子体。要仅为儿童添加td标签,请执行以下操作:


您将希望实时绑定这些元素(特别是如果它们都没有ID)。动态绑定使得所有与选择器匹配的当前和未来元素都将被选中。进一步阅读:关于如何告诉jQuery您单击了哪些代码,您需要从代码中某个实体(例如div或anchor ref)上的onclick事件触发切换代码。如果您随后使用标准的“this”选择器,则切换操作将不会是“贪婪的”(即,它不会切换页面中分类为“活动”或其他类型的所有内容)re:您的第二次更新-假设您是通过事件处理程序绑定的(您应该这样做!),那么在该操作中您可以执行类似var value=$(this).text()的操作;不要忘了,你可以使用链接,所以只需将第二个toggleClass链接到第一个toggleClass的末尾!是的,说得好!我也喜欢ddango的答案,即将.click()函数附加到每个.status和.inactive div。我认为这个函数最接近最佳值,因为它使用了“id”属性。我更喜欢
toggleClass()
而不是其他两个。但是,我只将其应用于“非活动”类。CSS允许一个元素有两个(或更多)类,因此这两个状态将是“status”和“status inactive”。然后,活动的CSS样式进入.status的CSS类,非活动的样式进入.inactive的CSS类。必须注意确保“.inactive”规则否决级联中的“.status”规则。我同意你的观点:css级联。但是,我认为在这种情况下使用ID没有什么意义,因为这种情况看起来是一个具有重复结构的动态内容列表。
$('div.status', 'div.inactive').live("click", function(){
    $(this).toggleClass("inactive").toggleClass("status");
        });
//Click Handler to toggle active state of all links descendant of all td tags
$("td a").click(function(){
 //add/remove inactive class and add/remove active smoothly over 1/2 second in total
 $(this).toggleClass("inactive, 250").toggleClass("active", 250);
});
$("td > a")