2015-09-16 4 views
-1

Я пытаюсь создать простой скрипт для блокировки пользователей на определенном форуме. Это моя первая попытка с Javascript. От быстрого взгляда я заметил, что форум не использует идентификаторы для пользователей, а скорее ids для сообщений, которые создали мне проблему, чтобы найти определенного пользователя и удалить его.Удалить класс по href

Это, как говорится, я не узнал, что в классе с именем «имя пользователя онлайн popupctrl» есть HREF со ссылкой на профиль пользователя, как можно видеть здесь:

enter image description here

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

enter image description here

мне удалось найти все сообщения с этим сценарием:

var divs = document.getElementsByTagName("div"); 
for (var i = divs.length; i;) { 
    var div = divs[--i]; 
    if (div.id.indexOf("post") > -1) { 
    } 
} 

, но я не знаю, как проверить для него детей, пока я не найти href, и если это правильный, чтобы удалить его.

+1

Это нормально использовать JQuery для вас? В библиотеке есть много методов перемещения, таких как 'find', и это поможет вам. –

+1

Это был бы один лайнер с jquery: '$ ('a [href = ...]'). Parent ('div.postcontainer'). Hide();' –

+1

Вы понимаете, что блокирование любых функций только * * javascript можно легко обойти, не так ли? – Jamiec

ответ

1

сначала получите тег этого пользователя. Это довольно легко в наше время:

var a_tag = document.querySelector('a[href="member.php?u=649142"]'); 

затем путешествие вверх:

var container_tag = a_tag.parentNode.parentNode.parentNode; 

наконец, делать то, что вы хотите сделать с этим узлом:

container_tag.parentNode.removeChild(container_tag); 
+0

Это сработало, но он удалил только 1 сообщение от этого пользователя, есть ли способ удалить все сообщения? – SpoocyCrep

+0

попробуйте использовать запросSelectorAll() –

+0

Спасибо! это, кажется, работает отлично. Просто последнее, я заметил, что форум иногда автоматически обновляет новые сообщения, я до сих пор не тестировал его с текущим скриптом, но я считаю, что сценарий не удалит эти новые всплывающие сообщения. Есть ли способ сделать это снова в случае появления нового сообщения? Я заметил, что в консоли он пишет «новое сообщение» в случае появления нового сообщения. – SpoocyCrep

Смежные вопросы