【问题标题】:Can't seem to get class_exists to work似乎无法让 class_exists 工作
【发布时间】:2015-09-20 05:50:31
【问题描述】:

我有一个页面设置,其中一些 div 具有 .w2 类,而另一些则没有,因为我需要这些项目具有不同的图像大小。所以我一直在环顾四周,看看我可以用什么来检查一个类是否被应用并找到了class_exists 函数。

所以我先做了一个小测试,看看它是如何工作的,但它总是返回false。即使我尝试查看页面是否应用了每个 div 元素所应用的类 item,这也是一样的,但它仍然返回 false。

<div class="item w2">
    <?php
        if (class_exists('w2')) {
            echo "The class is applied!";
        } else {
            echo "This class is not applied";
        }
    ?>
<div>

感谢您对此提出的任何建议。

/* 编辑 */

我一直在考虑这个问题,实际上我不需要为每个其他 div 添加另一个类。我只需要选择所有其他 div。所以我想我可以改用 :nth-child(even) 选择器。用下面的代码尝试一下是可行的,但我想知道是否有一种更简洁的方式来编写标记?

jQuery(function() {
  if ($("#grid .item:nth-child(even)")) {
    $(".item:nth-child(even) .figure h2").css('background', 'red');
  } else {
    $(".figure h2").css('background', 'blue');
  }
});

感谢本文提供的所有有用答案。

【问题讨论】:

  • class_exists()与css类无关,与PHP's OOP classes有关
  • 您可以使用 jQuery 的 hasClass() 方法轻松做到这一点,但这发生在客户端

标签: php jquery css class


【解决方案1】:

更新

回答您编辑中的第二个问题....

$( "div:odd" ).css( "background-color", "red" );
$( "div:even" ).css( "background-color", "blue" );

您正在检查现有的 PHP 类,而不是 CSS 类。您想为此使用 jQuery。

if ($(".w2").length > 0) {

    alert('class exists');


    $(".w2").each(function() {
        //perform some logic on found elements
        $(this).doStuff();
    }); 
} else {

    alert('class does not exist');
}

【讨论】:

  • 不错的一个。谢谢臭名昭著。我在原始帖子中添加了一个我正在尝试弄清楚的其他内容的编辑。
  • 如果这个答案是正确的,您可以单击我的答案左侧的复选标记以及向上箭头吗?谢谢!很高兴我能帮上忙,我现在看看你的编辑。
  • @MarGera332 也回答了您的第二个问题。最好让我支持并立即接受。 :) 哈哈 :P
  • 谢谢臭名昭著。我不认为我现在可以投票,因为我才刚刚开始使用 stackoverflow?
  • 另外你知道是否可以在 jQuery 中使用 php 吗?我在 Wordpress 中工作,需要将所有这些代码包含在循环中。我希望能够根据 div 是奇数还是偶数来显示不同尺寸的图像。
【解决方案2】:

PHP class_exists 函数是检查一个类(在 OOP 的意义上)是否存在,而不是客户端的 CSS 类。事实上,PHP 是严格的服务器端的,生成后对任何 HTML 都一无所知。

要做你需要的,你可以使用jQuery,像这样:

<div class="item w2">

<script type="text/javascript">
    $(function() {
        if ($('.w2').length) {
            console.log('The class is applied!');
        }
        else {
            console.log('The class is not applied');
        }
    });
</script>

【讨论】:

  • 好的,现在完全有道理了,为什么它不起作用。感谢您花时间回答,并整理了一个例子。我现在就试一试,看看我的进展如何。
  • 没问题,很乐意提供帮助。
猜你喜欢
  • 2011-11-30
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多