PHP动态变量作为jQuery选择器
PHP dynamic variable as jQuery selector
经过数小时的沮丧,我终于找到了导致错误的代码行,但现在我需要知道原因。
jQuery抛出此错误:Uncaught Error: Syntax error, unrecognized expression: .
我研究过它,发现这是一个Sizzle错误,当jQuery找不到被引用的选择器时就会发生。正如在SO的其他问题中所建议的那样,这实际上不是我的jQuery代码中的错误,而是在其他地方。
我定义了一个变量作为加载内容的目标元素,并使用PHP动态定义该变量,如下所示:
var $container = $(".<? echo $target ?>");
这不起作用,因为.
被标记为无法识别的表达式。然而,用静态字符串替换PHP变量效果很好:
var $container = $(".target");
这对我来说很难找到,因为我无法精确定位引发错误的行,而在浏览器的源代码中,上面的第一行看起来就像第二行。
为什么第一个例子不起作用?这与执行顺序有关吗?而且,如何使用动态变量作为选择器?
您必须使用
<?php echo $test; ?>
或者快捷方式:
<?= $test ?>
在执行此操作之前,您可以尝试trim($target)
。如果有效的话,你的变量中可能有一些不需要的空格。
还可以考虑使用json_encode
将变量从php传递到javascript。像这样:
var selector = <?php echo json_encode($target); ?>;
var $container = $(selector);
这将允许您不仅传递简单的字符串,还传递更复杂的变量结构(并且具有编码安全性(。
发现我加载的页面没有传递变量$target。在最初的页面上,$target是用一个值初始化的,因此源输出看起来像问题中指定的那样。然而,我为用新数据重新加载页面而进行的ajax调用没有传递变量。
- jQuery选择器无法正常工作
- 将jquery选择器转换为数组
- JavaScriptDOM正常工作时JQuery选择器不工作
- 在我的情况下,使用带有变量失败的 jquery 选择器
- 换行符插入jquery选择器
- 使用javascript"这个“;用于jquery选择器
- jQuery选择器缓存问题
- jQuery 选择器,所有跨度都在 DIV 内
- JQuery选择器:如果同级具有.class,则选择td
- jQuery选择器不识别任何动态创建的HTML输入函数
- 循环遍历元素jquery选择器
- jQuery选择器错误:无法识别的表达式
- 自定义jquery选择器属性未在模拟器中激发
- Jquery选择器为空,我应该使用哪个作用域
- jQuery选择器就是用这个构建的
- jQuery 选择器混淆
- 将jQuery选择器与“this”相结合
- jQuery选择器在脚本中不起作用,但在控制台中工作
- jQuery 选择器中的简单 jQuery 语法和串联
- 全局 JQuery 选择器缓存以提高性能