[英]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調用沒有傳遞變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.