Как вставить переменную $ в jQuery

Я работаю в Drupal с помощью jQuery. Как вставить переменную php $ в тег.

$(document).ready(function(){ $("#comment-delete-<?php print $variable ?>").click(function(){ $("div.comment-<?php print $variable ?> span.body").replaceWith("new text"); }); }) 

или

 $(document).ready(function(){ $("#comment-delete-". $variable).click(function(){ $("div.comment-". $variable ." span.body").replaceWith("new text"); }); }) 

Несколько вещей, чтобы очистить. Я работаю в Drupal, поэтому полный код выглядит так:

 <?php drupal_add_js ( '$(document).ready(function(){ $("#comment-delete-"' print $comment->cid; ').click(function(){ $("div.comment-"' print $comment->cid; '" span.body").replaceWith("<span style=\'color: grey;\'>Please wait...</span>"); }); })', 'inline'); ?> 

но он все еще не работает.

Обновление: я пробовал следующее, но он все еще не работает

 <?php $testing = "42"; drupal_add_js ( '$(document).ready(function(){ $("#comment-delete-"'. $testing .').click(function(){ $("div.comment-"'. $testing .'" span.body").replaceWith("<span style=\'color: grey;\'>Please wait...</span>"); }); })', 'inline'); ?> 

Если я использую число «42» вместо переменной, оно работает, но не при использовании переменной … странно.

Solutions Collecting From Web of "Как вставить переменную $ в jQuery"

Основываясь на вашем комментарии:

 <?php drupal_add_js (' $(document).ready (function() { $("#comment-delete-' . $variable . '").click (function() { $("div.comment-' . $variable . ' span.body").replaceWith ("new text"); }); }) ','inline'); ?> 

Вы должны объединить $variable , а не print ее

 $(document).ready(function(){ $("#comment-delete-<?php print $variable ?>").click(function(){ $("div.comment-<?php print $variable ?> span.body").replaceWith("new text"); }); }) 

Поскольку PHP выполняется до загрузки страницы, второй метод не работает. На самом деле, второй объединяет два разных языка, которые работают в разное время, а это значит … он все равно не сработает.


Вот что происходит.

Страница запросов браузера

PHP Создает HTML-страницу
PHP ищет файл для тегов <?php ?> И запускает код внутри них:

 $(document).ready(function(){ $("#comment-delete-<?php print $variable ?>").click(function(){ $("div.comment-<?php print $variable ?> span.body").replaceWith("new text"); }); }) 

Вышеприведенный пример создаст это после анализа:

 $(document).ready(function(){ $("#comment-delete-mytag").click(function(){ $("div.comment-mytag span.body").replaceWith("new text"); }); }) 

Сервер отправляет страницу в браузер

Браузер читает страницу

Работает Javascript:

 $(document).ready(function(){ $("#comment-delete-mytag").click(function(){ $("div.comment-mytag span.body").replaceWith("new text"); }); }) 

Если вы заметили, PHP просто создает веб-страницу для отправки в браузер. Итак, все, что вы используете PHP, это создать Javascript Code. При работе на PHP вы никогда не должны следовать правилам синтаксиса Javascript. Вы должны просто правильно настроить Javascript Syntax, когда он попадает в браузер. AKA Вы можете вставить все теги <?php ?> Которые вы хотите, до тех пор, пока страница попадает в браузер, это действительный Javascript.


Если вы передаете код в функцию, как и ваш комментарий, вы должны создать строку, которая заключена в кавычки, и в этом случае ваш второй пример будет правильным:

 drupal_add_js ( '$(document).ready(function(){ $("#comment-delete-'. $variable . ').click(function(){ $("div.comment-'. $variable . ' span.body").replaceWith("<span style=\'color: grey;\'>Please wait...</span>"); }); })', 'inline'); 

[править] Ooops, неважно, я просто понял, что точный ответ уже отправлен, я просто не был достаточно осторожен, чтобы следить за ним.