Выполнение jQuery в закладке без возврата объекта

#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 есть способ ничего не возвращать, но не думал об этом. Это сработало, спасибо.