簡體   English   中英

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調用沒有傳遞變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM