Jump to content
  • 0

При нажатии на imput должна меняться ширина div


psywalker
 Share

Question

Добрый день.

Что мы имеем:

		
<script language="javascript">
var obj = new Object();

div = document.getElementById('div');
input= document.getElementById('input').value;

obj.test = function(){

if(input.indexOf('y') ){
div.style.width = '800';
}else {
}
}
</script>

<input type="text" name="input" id="input" value="" />
<input type="button" value="Нажми меня срочно" onclick="obj.test()" />
<div id="div" style="width: 300px;">BLOCK</div>

Задача:

Когда в строке input type="text" появляется буква "y", то принажатии на input type="button" - элемент "div" должен растягиваться до ширины 800px (в данный момент он 300px;);

Вопрос:

Почему этого не происходит и что нужно дописать, чтобы идея работала?

Edited by psywalker
Link to comment
Share on other sites

Recommended Posts

  • 0
1.2. alert(typeof n + ': ' + n); - Тут мы уже получаем число 1010, так как выше мы вот этой записью var n = parseInt(z); сделали преобразование переменной 'z' в число? Но тогда вопрос: А почему в таком случае мы получили Число 1010, а не 20, ведь я полагаю, что раз мы преобразовали переменную 'z' в число, то они должны были сложится?

Потому, что мы сначала получаем строку (z), а потом уже ее преобразовываем в число (т.е. запись parseInt(z); эквивалентна такой - parseInt("1010"); )

2.1. А почему обязательно писать оператор + вместе с Каждой переменной, почему бы не написать просто его один раз, например: (typeof z' = ' + z);?

Потому что z это не строка, а переменная в которой хранится строка. Если написать z'text' то будет ошибка. Для этого и существует конкатенация (сложение строк) - "+".

В остальном все верно понял.

Edited by Great Rash
Link to comment
Share on other sites

  • 0
2)

Так, я понял, но вопрос:

2.1. А почему обязательно писать оператор + вместе с Каждой переменной, почему бы не написать просто его один раз, например: (typeof z' = ' + z);?

Дружище, ты пока не пытайся упрощять синтаксис языка. Это дело разработчиков JS ;) Вижу, ты пока мыслишь категориями html и css. Забудь о них, когда пишешь на скриптах. Потому что html еще прощает некоторые описки и недописки, а программа уже не прощает никаких ошибок. Тут все должно быть абсолютно четко, каждый символ должен быть на своем месте и ничего лишнего.

Чтобы понять логику работы программы надо думать не как человек, а как программа интерпретатор на компе. Это человек может догадаться, что это: z' = ' - конкатинация, а интерпретатору откуда это знать? Он обрабатывает какбы по словам. Есть слово z, а потом идет слово ' = ', а что с ними делать - не понятно, нет управляющего символа между ними. Ну и всё, дальше ему плевать на всю программу, он останавливается и говорит: "синтаксическая ошибка".

Edited by Searcher
Link to comment
Share on other sites

  • 0

Great Rash

Спасибо за разъяснение, буду вкуривать ;)

Searcher

Дружище, ты пока не пытайся упрощять синтаксис языка. Это дело разработчиков JS :( Вижу, ты пока мыслишь категориями html и css. Забудь о них, когда пишешь на скриптах. Потому что html еще прощает некоторые описки и недописки, а программа уже не прощает никаких ошибок. Тут все должно быть абсолютно четко, каждый символ должен быть на своем месте и ничего лишнего.

Чтобы понять логику работы программы надо думать не как человек, а как программа интерпретатор на компе. Это человек может догадаться, что это: z' = ' - конкатинация, а интерпретатору откуда это знать? Он обрабатывает какбы по словам. Есть слово z, а потом идет слово ' = ', а что с ними делать - не понятно, нет управляющего символа между ними. Ну и всё, дальше ему плевать на всю программу, он останавливается и говорит: "синтаксическая ошибка".

ага, понял тебя дружище, спасибо, просто я только начинаю, поэтому наверное так и должно быть, но буду стараться :) Great Rash

Edited by psywalker
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy