Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.05.2017, 17:20
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

textarea поиск в областе нажатия курсора.
В textarea находится json код, примерно такого содержания:
Код:
{
"id":"test1",
"select":"dsfsdf",
"text":"dsfdsf"
},
{
"id":"test2",
"number":"22",
"text":"dsfdsf"
},
{
"id":"test3",
"select":{"ok":"no"},
"text":"dsfdsf"
}
Когда я мышкой нажимаю допустим в строчку "number":"22",
Я хочу увидеть alert с id этого array то есть "id":"test2".

Такое возможно на JavaScript?

Последний раз редактировалось dima85, 17.05.2017 в 18:31.
Ответить с цитированием
  #2 (permalink)  
Старый 17.05.2017, 17:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от dima85
Такое возможно на JavaScript?
да,но может проще пристрелить кого-то, чтоб не мучался?
Ответить с цитированием
  #3 (permalink)  
Старый 17.05.2017, 17:44
Кандидат Javascript-наук
Отправить личное сообщение для Diphenyl Oxalate Посмотреть профиль Найти все сообщения от Diphenyl Oxalate
 
Регистрация: 21.01.2017
Сообщений: 139

dima85,
по клику на textarea считывать свойство selectionStart (позиция курсора в textarea)

<textarea id="foo" rows="5">клик
по
любой
строчке</textarea>
<script>

document.getElementById("foo").onmouseup = function () {
  var p1 = this.value.slice(0, this.selectionStart).split("\n"),
  p2 = this.value.slice(this.selectionStart).split("\n");
  alert( p1[p1.length - 1] + p2[0] );
};

</script>
Ответить с цитированием
  #4 (permalink)  
Старый 17.05.2017, 18:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от dima85
находится json код
а где запятые после значения id? и []

Последний раз редактировалось рони, 17.05.2017 в 18:11.
Ответить с цитированием
  #5 (permalink)  
Старый 17.05.2017, 18:31
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Извиняюсь моя синтаксическая ошибка, запятые должны быть.
Ответить с цитированием
  #6 (permalink)  
Старый 17.05.2017, 19:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

dima85,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>


</head>

<body>
<textarea id="foo" rows="25">


{
"id":"test1",
"select":"dsfsdf",
"text":"dsfdsf"
},
{
"id":"test2",
"number":"22",
"text":"dsfdsf"
},
{
"id":"test3",
"select":{"ok":"no"},
"text":"dsfdsf"
}


</textarea>
<script>
document.getElementById("foo").onmouseup = function() {
    var a = this.value,
        d = this.selectionStart,
        b = a.indexOf("{"),
        c = a.lastIndexOf("}");
    if (!(d < b || d > c)) {
        for (var a = this.value, e = JSON.parse("[" + a + "]"), b = /\}\s*?,\s*?\{/g, c = 0; null != b.exec(a) && b.lastIndex < d;) c++;
        alert(e[c].id)
    }
};
</script>


</body>
</html>

Последний раз редактировалось рони, 17.05.2017 в 20:00.
Ответить с цитированием
  #7 (permalink)  
Старый 17.05.2017, 19:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

dima85,
скрипты пишут для какого-то практического применения. В данном же такого трудно уловить. Зачем это нужно, какова цель такого действия?
Ответить с цитированием
  #8 (permalink)  
Старый 18.05.2017, 12:20
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

JSON.parse("[" + a + "]"), b = /\}\s*?,\s*?\{/g, c = 0; null != b.exec(a) && b.lastIndex < d;) c++;

alert(e[c].id)


можете пожалуйста объяснить что тут происходит?
Ответить с цитированием
  #9 (permalink)  
Старый 18.05.2017, 17:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Duda.Ml1986@gmail.com,
e = JSON.parse("[" + a + "]"), //сделать из текста массив
 b = /\}\s*?,\s*?\{/g, //RegExp для поиска в тексте мест разделени блоков },{
  c = 0;//индекс массива

   null != b.exec(a) && b.lastIndex < d;) //пока в тексте находятся },{  и индекс последней находки меньше индекса клика

    c++;// увеличиваем индекс
    alert(e[c].id) //показываем id блока из массива согласно получившемуся индексу
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Положение курсора в textarea DmitryOpalev Элементы интерфейса 1 04.06.2011 16:44
Подскажите, как реализовать добавление текста в положение курсора textarea ArmagedDance Events/DOM/Window 2 13.05.2011 22:32
Прокрутить textarea до позиции курсора Cooskon Элементы интерфейса 0 05.04.2011 19:50
Как получить слово по позиции текстового курсора в textarea. kageua Общие вопросы Javascript 0 24.12.2010 13:48
Изменить положение курсора textarea demi Events/DOM/Window 3 11.03.2009 11:05