Как избежать двойных кавычек в jQuery - PullRequest
0 голосов
/ 25 октября 2019

Мне не удается избежать двойных кавычек (") в jQuery :( Любая идея?

Вот мой код:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style>
.red { border-top: 10px solid red; }
.yellow { border-top: 10px solid yellow; }
.left { border-left: 3px solid green; } 
</style>
</head>
<body>
<ul id="choose">
    <li>Goofy</li>
  <li><a href="blabla.aspx">Mickey</a></li>
  <li><a href="other.ext">Mickey</a></li>
  <li>Pluto</li>
</ul>

<script>
$(document).ready(function(){
  $("p:contains(is)").css("background-color", "yellow");
  $("li:contains('Mickey')").addClass('left');
  $("li:contains('aspx">Mickey')").addClass('yellow');
  $("li:contains('Pluto')").addClass('left');
});
</script>

</body>
</html>

Спасибо:)

/ * Похоже, что ваше сообщение в основном состоит из кода; пожалуйста, добавьте некоторые подробности. Похоже, что ваше сообщение в основном является кодом; пожалуйста, добавьте еще несколько деталей. Похоже, что ваше сообщение в основном состоит из кода;. * /

Ответы [ 2 ]

2 голосов
/ 25 октября 2019

Не очень хорошая идея пытаться найти фрагмент буквального HTML-кода с помощью contains. HTML имеет тенденцию меняться, и даже один пробел может нарушить код.

Вместо этого используйте :has и передайте правильный селектор для дочернего элемента:

$(document).ready(function(){
  $("p:contains(is)").css("background-color", "yellow");
  $("li:contains('Mickey')").addClass('left');
  $("li:has(a[href$=aspx]:contains('Mickey'))").addClass("yellow");
  $("li:contains('Pluto')").addClass('left');
});
.red { border-top: 10px solid red; }
.yellow { border-top: 10px solid yellow; }
.left { border-left: 3px solid green; } 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

<ul id="choose">
  <li>Goofy</li>
  <li><a href="blabla.aspx">Mickey</a></li>
  <li><a href="other.ext">Mickey</a></li>
  <li>Pluto</li>
</ul>

Кроме того, вы также можете использовать только селектор самой ссылки и получить li с .parent().

0 голосов
/ 25 октября 2019

Использовать обратные метки ``

$(`li:contains('aspx">Mickey')`)

$("li:contains('aspx\">Mickey')")

Также работает на моей стороне, что является стандартным способом экранирования символов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...