#javascript #jquery
#javascript #jquery
Вопрос:
Я написал этот код на Javascript:
document.querySelectorAll("img[src*='SOMETHING']").forEach(function(energy){energy.parentNode.remove()})
Я могу добавить закладку с этим кодом javascript:
, добавив к ней . Когда я нажимаю на закладку, выполняется код.
Это эквивалент кода выше в jQuery:
$("img[src*='SOMETHING']").parent().remove()
Но если я добавлю его с javascript:
помощью и добавлю его в закладку и щелкну по нему на странице, исходный код изменится на [object Object]
, и если я добавлю код jQuery с .val()
помощью, я получу пустую страницу.
Как я могу изменить код jQuery, чтобы не делать этого после нажатия на закладку?
Ответ №1:
Это происходит потому, что jquery всегда возвращает объект, а код, который вы используете для своего букмарклета, не знает, что делать с возвращаемым значением, поэтому он отображает его. При использовании vanillajs код просто выполняется, ничего не возвращая, следовательно, молча для вас.
Если вы обернете свой код в самоисполняющуюся функцию, которая itslef ничего не возвращает, это должно сработать:
javascript:(function(){/* Whatever you want to do here*/})()
Комментарии:
1. Я знал, что для jQuery есть способ ничего не возвращать, но не думал об этом. Это сработало, спасибо.