Safari игнорирует мой код Jquery для удаления первого слова в диапазоне - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть список UL LI

<ul class="tags no-animation clearfix" id="manufact">
    <li>
        <a href="">
            <img>
            <span>Logo name</span>
        </a>
    </li>
    <li>
        <a href="">
            <img>
            <span>Logo name</span>
        </a>
    </li>
</ul>

Мне нужно избавиться от слова "Lo go", так как это дубликат. Мой JS равен

$('#manufact li > a span').each(function(){
    var element = $(this);
    $(this).text(element[0].innerText.split(' ').splice(1).join(' '));
});

Во всех браузерах, кроме Safari, это (возможно, не идеально JS) нормально, в Safari он полностью стирает все в SPAN и оставляет его пустым.

Я хочу получить этот результат -

<ul class="tags no-animation clearfix" id="manufact">
    <li>
        <a href="">
            <img>
            <span>name</span>
        </a>
    </li>
    <li>
        <a href="">
            <img>
            <span>name</span>
        </a>
    </li>
</ul>

Спасибо, вперед!

Ответы [ 2 ]

2 голосов
/ 19 апреля 2020

Чтобы сделать это проще, вы можете предоставить text() функцию, которая заменяет только слово Logo в начале текстового значения в каждом элементе. Я не проверял, но в Safari это должно работать нормально.

$('#manufact li > a span').text((i, t) => t.replace(/^Logo\s?/i, ''));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="tags no-animation clearfix" id="manufact">
  <li>
    <a href="">
      <img>
      <span>Logo name</span>
    </a>
  </li>
  <li>
    <a href="">
      <img>
      <span>Logo name</span>
    </a>
  </li>
</ul>

Если вы всегда хотите удалить первое слово в span, независимо от того, что это слово, вы можете использовать ваш оригинальный лог c с этим шаблоном тоже:

$('#manufact li > a span').text((i, t) => t.split(' ').splice(1).join(' '));
1 голос
/ 19 апреля 2020

Попробуйте что-то вроде этого:

$('#manufact li > a span').each(function(){
    var element = $(this);
    element.text(element.text().split(' ').splice(1).join(' '));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...