Php jquery hasClass没有';检查动态添加的类时不起作用
我有一个问题,我通过php动态地向div添加一个类,然后检查id“checkLang”是否有spacific类,但它不起作用:( 也许有人知道这个问题? 我的html: 但也不起作用:(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'
请注意,如果这是一个愚蠢的问题,我很抱歉,我不熟悉这个东西,但愿意学习!:)看起来您的脚本没有添加到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 alertalert($('checkLang')).attr('class'))
然后,当alert时($('#checkLang').attr('class'))
我有正确的警报-取决于页面语言!我会尝试使用该解决方案!哈,wierd,但当我检查likeif($('#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>