Оператор ==
проверяет, указывают ли две ссылки на один и тот же объект или нет. .equals()
проверьте фактическое содержимое строки (значение).
Обратите внимание, что метод .equals()
принадлежит классу Object
(суперкласс всех классов). Вам необходимо переопределить его в соответствии с вашим требованием к классу, но для String оно уже реализовано и проверяет, имеет ли две строки одно и то же значение.
String s1 = "Stack Overflow";
String s2 = "Stack Overflow";
s1 == s2; //true
s1.equals(s2); //true
Причина: строка литералы, созданные без нуля, хранятся в пуле строк в области перментонов кучи. Таким образом, оба s1 и s2 указывают на один и тот же объект в пуле. String s1 = new String("Stack Overflow");
String s2 = new String("Stack Overflow");
s1 == s2; //false
s1.equals(s2); //true
Причина. Если вы создаете объект String с использованием ключевого слова new
, ему выделяется отдельное пространство в куче. Мое значение $ было перезаписано, и по какой-то причине оно не работало, когда я использовал jQuery.ajax. Вот почему я подумал, что весь этот jQuery не работает. Я закончил тем, что использовал решение @Louys Patrice Bessette, используя .noConflict ()
Это оказалось моим решением:
<!-- JQuery -->
<script type="text/javascript" src="{% static 'home/jquery.js' %}"></script>
<script>
var $j = jQuery.noConflict();
</script>
А затем я ссылался на ajax с помощью $ j.ajax [ 113]
Я не совсем уверен, чего именно вы пытаетесь достичь, но я думаю, что способ, которым вы ссылались на источник jquascript jquery, может быть там, где началась ваша проблема. <script type="text/javascript" src="path/to/your/jquery.js"></script>
должно быть хорошо для вас. Или лучше использовать CDN (Content Delivery Network), если вы разрабатываете с компьютера, подключенного к Интернету. С CDN все, что вам нужно сделать, это указать путь таким образом <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
. Пока jquery полностью загружен и нет конфликтов с другими сценариями, вы можете использовать функцию ajax по желанию. Дайте мне знать, если это поможет.
Наилучшая практика для решения этой проблемы с использованием JavaScript IIFE (выражение для немедленного вызова функции)
(function($) {
$.ajax({
//your ajax request
});
})(jQuery);
Вы можете написать это в готовом документе
(function($) {
$(document).ready(function(){
$.ajax({
//your ajax request
});
});
})(jQuery);