берем, проверяем, выводим.
вот мой код
HTML страницы с которой выполняется скрипт <div id="div_1"></div> <div id="div_body"></div> HTML страницы с которой происходит загрузка <div id="div_value"></div> сам скрипт function checkme() { $(#div_1).load('page.php #div_value'); var ck_value = $(#div_1).text(); if (ck_value == "") { $("#div_body").load('error.php'); } else { $("#div_body").load('ok.php'); } } суть работы - эта функция загружает в саму страницу с которой делается скрипт, заданный див с другой страницы, а потом идет проверка если ниче нету то ошибка , если чтото есть то ОК вопрос заключается в том что проверка не работает, почему? профессионалы помогите мне пожалуйста :yes: и вот заодно напишу пару вопросов когда происходит заргузка данного дива то это выглядит вот так <div id="div_1"><div id="div_value">12345</div></div> как сделать чтобы только сам див (div_value) не загружался а только что внутри него вот в этой строчке $(#div_1).load('page.php #div_value'); если дописать .text() тоесть так $(#div_1).load('page.php #div_value').text(); что это дает, и вообще надо ли, может из-за этого не сравнивает?! далее вот эти дивы <div id="div_1"></div> <div id="div_body"></div> я записал в саму страницу тоесть они уже там присутствуют, а как сделать так чтобы они добавлялись самим яваСкриптом, тоесть в html не прописывать, а вставлять в хтмл при выполнении функции, вроде знаю что так можно ответьте пожалуйста на мои вопросы умники и умницы |
всегда ставь JS в BB-теги
на странице такой же скрипт? если да, то смотри внимательней $(*!*#div_1*/!*).load('page.php #div_value'); var ck_value = $(*!*#div_1*/!*).text(); if (ck_value == "") { $("#div_body").load('error.php'); } else { $("#div_body").load('ok.php'); } } строки должны быть заключены в кавычки :) ошибок на странице не возникает? window.onerror = function(){alert('err')} |
это тут опечатка , а на странице в кавычках, так что скажешь по поводу моих вопросов?)
|
Цитата:
Цитата:
обработай входные данные или убери вывод этого дива. насчет первого , вместо $("#div_1").load('page.php #div_value'); пиши $("#div_1").load('page.php #div_value', *!*function(data){this.innerHTML=data.replace(/<.+>(.*)<.+>/,"$1")}*/!*); или это *!*$("#div_1").html(*/!* $("#div_1").load('page.php #div_value').text() *!*)*/!* Цитата:
если неясно - спустись вниз до примеров, там станет ясно Цитата:
|
Цитата:
|
melky
var ck_value = $(#div_1).text();вот смотри здесь зачем нужен text() чтобы потом можно было сравнивать верно? а вот здесь я не знаю нужен он или нет вроде пробовал и так и так и ниче незнаю че делается в итоге $("#div_1").load('page.php #div_value').text() я конечно понимаю возможно это наглость, но пожалуйста разъясняй мне подробнее чтобы я понимал и учился в дальнейшем |
Цитата:
$("#div_1").html( $("#div_1").load('page.php #div_value').text() ) можно расписать как // загрузит с тегом DIV и вернет текст (уже без DIV ) // т.е. просто 12345 var newText = $("#div_1").load('page.php #div_value').text(); // записывает этот текст в дивчик $("#div_1").html( newText ) первый пример почти такой же, только там используется callback (ф-я, исполняющаяся после выполнения запроса). подробнее - в документации |
ok следуем дальше, вообщем функция не распознает , может это потомучто не успевает? я просто смотрел через дебаггер там все встраивается в страницу, но загружает всегда
$("#div_body").load('error.php');этот код, мне кажется не успевает чтоли или я неззнаю че тут неправильно да и всетаки скажи вот здесь нужен текст код? $("#div_1").load('page.php #div_value').text(); потомучто работает и так и так вроде и дак какой пример лучше использовать там где ты говоришь колбек или второй и в чем разница между ними |
для понимания кода легче написать без колбека. ну, для меня, по крайней мере.
я не помню, или не соображаю уже, но load - это асинхронный или синхронный AJAX? поставь так вокруг $("#div_1").html( $("#div_1").load('page.php #div_value').text() ) и смотри в сообщения консоли console.log("LOADING started") $("#div_1").html( $("#div_1").load('page.php #div_value',function(){console.log("LOADING was ASYNC")}).text() ); console.log("LOADING was sync."); и запусти еще раз если после сообщения "LOADING started" идет "LOADING was ASYNC", то делай этот запрос синхронно, через $.ajax(). похожу запрос асинхронный, и данные не приходят,когда скрипт выполняется дальше, тем самым рушится вся логика |
идет вот так
LOADING started LOADING was sync. LOADING was ASYNC а код всетаки грузит так оба дива <div id="div_1"><div id="div_value">12345</div></div> это потомучто лоад асинхронный да? |
Часовой пояс GMT +3, время: 09:35. |