Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.10.2022, 18:21
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Сравнение строк
Привет. Пытаюсь сделать что то типа быстрого редактирования. Выделяю текст в статье, вывожу выделенную строку в текстовое поле, редактирую и отправляю на сервер. Там обрабатываю и пишу в базу. Ту строку, что редактировал оборачиваю в <span class="no-moder"></span> и она становится подсвеченной в статье. Если строка обёрнута в этот класс(может и в другой), то редактировать её нельзя.Теперь собственно вопрос. Как организовать проверку. Начал так.

<a href="javascript:;" onclick="get_selected_text(\'' + text + '\')">Получить выделенный текст</a></span>

function get_selected_text(c) {

var span = document.querySelectorAll('.no-moder');
    var select = window.getSelection();
    sellected = select.toString();
    var word = [];
    let res = [];

//тут проверяю есть ли выделенная строка в уже выделенных
    for (let i = 0; i < span.length; i++) {
        word = ($(span)[i]).firstChild.data;
        res = word.includes(sellected);       
    }

// тут отправка в текстовое поле

if (getSelection().type != 'None') {
.....
}
}


И тут я застрял. В принципе я мог поместить в цикл условие,что ниже и там что то намудрить, но тут подумал. Например у меня выделено слово Вася, но ведь в тексте может быть не одно слово Вася, как мне проверить, что новое Вася не есть уже выделенное Вася?
Ответить с цитированием
  #2 (permalink)  
Старый 12.10.2022, 19:06
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Для этого есть специальный метод у селекшена, надо проверять сами узлы а не текст:
let isAlreadySelected = false;

for (let i = 0; i < span.length; i++) {
  if (select.containsNode(span[i], true)) {
    isAlreadySelected = true;
    break;     
  }
}
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 12.10.2022, 19:16
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Ясно.Спасибо).
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение строки в переменной. Сравнение строк. serega_pte Events/DOM/Window 8 01.02.2016 13:29
Сравнение двух одинаковых строк - false kweb Общие вопросы Javascript 10 02.02.2015 18:29
Сравнение строк krasovsky Javascript под браузер 5 16.08.2013 11:19
Сравнение двух строк drac0Sha Общие вопросы Javascript 17 20.08.2012 19:45
сравнение строк в процентах doromones Общие вопросы Javascript 3 19.07.2010 19:48