bugfix> javascript > 投稿

次のjQueryを実行すると、「構文エラー、認識されない式」が表示されます。

$element = $('.header__navigation .menu-item > .megamenu__item__link:focus');
var href = $element.attr('href');   // Example: #one-&-two
$('#mega-menu').find(href).toggleClass('active'); // it breaks here

href値がどこにあるかについてどのようなオプションがありますか #one-&-two div#mega-menu内の要素のクラスを次のように切り替えようとしています id="#one-&-two"

以下のように、「href」変数の「&」文字をエスケープしてみました。

$('#mega-menu').find(href.replace('/&/g','&')).toggleClass('active');

たぶん、次のような入力を受け取ることができるfind()の代替手段 #one-&-two

回答 1 件
  • これは私のために働いた:

    $('#mega-menu').find("[id='"+ href.substring(1) +"']").toggleClass('active');
    
    

    たとえば、次のスニペットを参照してください。

     var href = $('a.link').attr('href');   
           
      $('div.some-class').find("[id='"+ href.substring(1) +"']").text('sss');
    
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="some-class">
         <a class="link" href="#one-&-two"></a>
         <span id="one-&-two"></span>
     </div>
    
    

あなたの答え