JavaScript-скрипт JQuery захватывает неверное количество элементов

Я использовал JQuery, чтобы показать / скрыть элементы, основанные на состоянии входа в систему, однако я столкнулся с некоторыми неожиданными результатами, вот код:

<script>
$(document).ready(function(){
$("#uploadform").hide();
});
</script>

Это скрывает форму, если пользователь не вошел в систему.

    <h2 id="needlogon"> You need to be logged in </h2>
<a id="needlogon" href="index.php"> Back to start </a>

Они должны отображаться, только если пользователь не вошел в систему

<?php
if (isset($_SESSION['cid'])){
echo '<script>
$(document).ready(function(){
$("#uploadform").show();
$("needlogon").hide();
});
</script>';
}
?>

Форма загрузки отображается / скрывается как намеренная, но элементы Needlogon не скрываются, когда установлено условие ($ _SESSION [‘cid’]). Единственный способ, которым это работает, — это изменить идентификаторы элементов на needlogon1 и needlogon2 и изменить JQuery на:

<?php
if (isset($_SESSION['cid'])){
echo '<script>
$(document).ready(function(){
$("#uploadform").show();
$("#needlogon1").hide();
$("#needlogon2").hide();
});
</script>';
}
?>

Я уверен, что просто скучаю по чему-то глупому, кто-нибудь знает, что это такое?

1

Решение

Для начала, ваш селектор jQuery отключен:

// $("needlogon").hide();
$("#needlogon").hide(); // you forgot the #

Сказав это, вы используете идентификатор — который должен быть уникальный. Вы могли бы хотеть изменить два использования needlogin к class вместо idи тогда ваш селектор будет .needlogon вот так:

$(".needlogon").hide();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]