Php jquery hasClass没有';检查动态添加的类时不起作用

Php jquery hasClass没有';检查动态添加的类时不起作用,php,javascript,jquery,class,Php,Javascript,Jquery,Class,我有一个问题,我通过php动态地向div添加一个类,然后检查id“checkLang”是否有spacific类,但它不起作用:( 也许有人知道这个问题? 我的html: 但也不起作用:( 请注意,如果这是一个愚蠢的问题,我很抱歉,我不熟悉这个东西,但愿意学习!:)看起来您的脚本没有添加到dom就绪处理程序中,如 jQuery(function($){ alert($('#checkLang').length)//it should alert 1 not 0 if ($('#checkLang'

我有一个问题,我通过php动态地向div添加一个类,然后检查id“checkLang”是否有spacific类,但它不起作用:(

也许有人知道这个问题? 我的html:

但也不起作用:(


请注意,如果这是一个愚蠢的问题,我很抱歉,我不熟悉这个东西,但愿意学习!:)

看起来您的脚本没有添加到dom就绪处理程序中,如

jQuery(function($){
alert($('#checkLang').length)//it should alert 1 not 0
if ($('#checkLang').hasClass('RU')){
    <?php include("lan/ru.php"); ?>
};
})
jQuery(函数($){
警报($('#checkLang').length)//它应该警报1而不是0
if($('#checkLang').hasClass('RU')){
};
})

看起来您的脚本没有添加到dom就绪处理程序中,如

jQuery(function($){
alert($('#checkLang').length)//it should alert 1 not 0
if ($('#checkLang').hasClass('RU')){
    <?php include("lan/ru.php"); ?>
};
})
jQuery(函数($){
警报($('#checkLang').length)//它应该警报1而不是0
if($('#checkLang').hasClass('RU')){
};
})

在这里给出了我的JSFIDLE示例,您可以清楚地看到javascript能够检查给定类是否设置在div上

无论发生什么情况,这两个php文件都将被呈现,因为此处的if检查是在客户端javascript上完成的。如果希望在客户端完成检查后仅呈现php文件中的数据,则必须从客户端获取数据,而不是从服务器端提供数据

一种方法是通过ajax。例如,您可以创建一个php脚本,该脚本基于查询返回html内容,如:

php?lang=RU

在javascript代码中,您将有一个如下设置的请求:

$.get('checklang.php?lang=RU', function(data) { //switch RU with a js variable so you can change between RU and LV programatically
  $('#some-content-div').html(data);
});

在这里给出了我的JSFIDLE示例,您可以清楚地看到javascript能够检查给定类是否设置在div上

无论发生什么情况,这两个php文件都将被呈现,因为此处的if检查是在客户端javascript上完成的。如果希望在客户端完成检查后仅呈现php文件中的数据,则必须从客户端获取数据,而不是从服务器端提供数据

一种方法是通过ajax。例如,您可以创建一个php脚本,该脚本基于查询返回html内容,如:

php?lang=RU

在javascript代码中,您将有一个如下设置的请求:

$.get('checklang.php?lang=RU', function(data) { //switch RU with a js variable so you can change between RU and LV programatically
  $('#some-content-div').html(data);
});

它包含您的内容,因为它已经生成了服务器端,所以当html站点被传输时,php脚本已经被渲染,而javascript在客户端处理,您需要调整您的尝试

你看这会有用的

<div id="checkLang" class ="<?php echo $valoda ?>"><div>
<div class="ru" style="display:none;">
       <?php include("lan/ru.php"); ?>
</div>

<div class="lv"  style="display:none;">
        <?php include("lan/lv.php"); ?>
</div>


$(document).ready(function()
 {
   if ($('#checkLang').hasClass('RU')){
       $('.ru').show();   
   }

if ($('#checkLang').hasClass('LV')){
     $('.lv').show();   
};             
 });

它包含了您的内容,因为它已经生成了服务器端,所以当html站点被传输时,php脚本已经被渲染,而javascript被处理在客户端,您需要调整您的尝试

你看这会有用的

<div id="checkLang" class ="<?php echo $valoda ?>"><div>
<div class="ru" style="display:none;">
       <?php include("lan/ru.php"); ?>
</div>

<div class="lv"  style="display:none;">
        <?php include("lan/lv.php"); ?>
</div>


$(document).ready(function()
 {
   if ($('#checkLang').hasClass('RU')){
       $('.ru').show();   
   }

if ($('#checkLang').hasClass('LV')){
     $('.lv').show();   
};             
 });
当前语言:

<div id="checkLang" class ="<?php echo $valoda ?>"><div>
当前语言:

<div id="checkLang" class ="<?php echo $valoda ?>"><div>

FYI,当客户端代码添加时,更典型的情况是调用动态的东西。还有,为什么不在php中使用
if($valoda=='RU')
?我尝试了
if($valoda=='RU')
,但效果不太好。FYI,当客户端代码添加时,更典型的情况是调用动态的东西。还有,为什么不直接使用
if($valoda=='RU')
在php中?我尝试了
if($valoda=='RU')
,但效果不太好。不管条件如何,它不会仍然包含php文件吗?感谢您的建议,它会提醒1,但bouth条件仍然执行:(@KristīneGlode can you alert
alert($('checkLang')).attr('class'))
然后,当
alert时($('#checkLang').attr('class'))
我有正确的警报-取决于页面语言!我会尝试使用该解决方案!哈,wierd,但当我检查like
if($('#checkLang').attr('class'))==('RU'))
对于这两种语言,那么两个ifs都会执行。不管条件如何,它不会仍然包括php文件吗?感谢您的建议,它会提醒1,但bouth条件仍然会执行:(@KristīneGlode您可以提醒
提醒($('checkLang').attr('class'))
thenO,当
提醒($('checkLang').attr('class'))
我有正确的警报-取决于页面语言!我会尝试使用该解决方案!哈,wierd,但当我像
一样检查if($('.#checkLang').attr('class'))==('RU'))
对于两种语言,然后执行两个ifs。感谢您的建议,但在我有时间实际检查之前-在您的代码中,我在index.php中包含语言php文件,但我需要在检查语言的文件中访问它们。在索引文件中,我使用$\u GET方法导入了正确的文件。感谢您的建议,但在我有时间检查之前在您的代码中,我在index.php中包含了语言php文件,但我需要在检查语言的文件中访问它们。在索引文件中,我使用$\u GET方法导入了正确的文件。
<script type="text/javascript">
    $(document).ready(function(){
        var currLng = $('#checkLang').attr('class'); // get current language, i.e class of #checkLang
        $('div.' + currLng).show(); // show div with corresponding class, i.e lang
    });
</script>