Найти элемент, заменить буквы, ввести в input

182
04 сентября 2017, 07:48

Порядок действий такой
1. Ищем на странице input с определённым id
Вроде так

if ($('#input-id').find) {  
// тут код  
}

2. Если input на станице имеется, то ищем в "хлебных крошках" второе звено.
Верстка "хлебных крошек такая"

<div class="breadcrumbs">
    <span>
        <a href="#">
            <span>Главная</span>
        </a>
    </span>
    <span class="separator"> » </span>
    <span>
        <a href="#" itemprop="item">
            <span>Категория</span>
        </a>
    </span>
    <span class="separator"> » </span>
    <span>
        <a href="#">
            <span>СубКатегория</span>
        </a>
    </span>
    <span class="separator"> » </span>
    <span class="title">Материал</span>
</div>

Требуемый пункт - "Категория". Отмечу, что вложенность "хлебных крошек" может быть разной, но расположение второго пункта всегда одно и то же.

Смог найти как-то так:

var first = $('.breadcrumbs span:nth-child(3) span').text(); 
  1. Теперь надо взять последние две буквы и заменить их на букву "у". Надо было так?

    var second = maks.replace('ия', 'у');

  2. Результат ввести в input c ID input-id Вот тут уже не знаю как правильно, мой вариант вообще не сработал

    $('#input-id').val = maks

Почти на 100% уверен, что даже те шаги, что смог сделать, выполнены плохо. Поправьте, пожалуйста, и покажите последний пункт. Ещё был бы благодарен за вариант на чистом js, так как не хочется по пустякам дергать jQuery.

Answer 1

jQuery(document).ready(function($) { 
  var elem = $('#input-id'); 
  if (elem.length) { 
    var text = $('.breadcrumbs span:nth-child(3) span').text(); 
    text = text.slice(0, -2) + 'у'; 
    elem.val(text); 
  } 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="breadcrumbs"> 
    <span> 
        <a href="#"> 
            <span>Главная</span> 
        </a> 
    </span> 
    <span class="separator"> » </span> 
    <span> 
        <a href="#" itemprop="item"> 
            <span>Категория</span> 
        </a> 
    </span> 
    <span class="separator"> » </span> 
    <span> 
        <a href="#"> 
            <span>СубКатегория</span> 
        </a> 
    </span> 
    <span class="separator"> » </span> 
    <span class="title">Материал</span> 
</div> 
 
<input type="text" id="input-id">

Answer 2

http://api.jquery.com/val/

if ($('#input-id').length > 0) {
  $('#input-id').val(maks); 
}

Но проверка, вполне возможно, не нужна. Пишите просто:

$('#input-id').val(maks); 
READ ALSO
Request Aborted | Остановка ajax запроса

Request Aborted | Остановка ajax запроса

Сервер - nodejs Отправляю файл на сервер с ajax запросом, прогресс загрузки отображается

172
php file_get_contents на javascript

php file_get_contents на javascript

Можете предложить альтернативу функции PHP file_get_contents на javascript?

188
Сканирование php.ini

Сканирование php.ini

Скомпилировал php

187