Как остановить функцию JavaScript с помощью return?

интернет программирование JavaScript jQuery скрипт

function nameplace() {
var ttxt = '/ничего не выбрано/';
$("#place option").each(function() {
var tval = $(this).attr("value");
var oval = $("#place").val();

if ( tval == oval ) {
var ttxt = $(this).text();
return ttxt;
}
});

return ttxt;
};

Судя по отладчику функция доходит до "var ttxt = $(this).text(); return ttxt;", но на этом не прерывается а продолжает выполнение дальше, вплоть до конца функции и соответственно возвращает '/ничего не выбрано/'.
Как это поправить? Сделать так что бы по первому return функция прерывалась или что бы ttxt переменная перезаписывалась внутри цикла each?
Ответы:
А у вас сам цикл отрабатывает? или запутались с кавычками?
Функция заканчивается на return, как и должна. Впрочем, этот return бессмысленный, потому что эта функция в любом случае заканчивается тут же. А цикл each() продолжает крутиться, естественно. Он же из другой функции. Чтобы прервать each(), попробуй return false внутри него.
А правильное решение состоит в том, чтобы не крутить этот идиотский цикл, а просто написать правильный селектор и сразу выбрать нужный элемент. Читай ссылки.
У вас значение возвращает внутренняя функция свою локальную переменную, а должна внешнюю, вместо var ttxt = $(this).text(); поставьте просто ttxt = $(this).text(); без "var"


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.