jquery
  • jquery-selectors
  • 2016-07-20 7 views 0 likes 
    0

    JQuery 1.10.2を使用していますが、複数のセレクタですべてのリンクを開始しようとしていますが、最適化できるとは思いますが、ノーハウ。セレクタは、これらのURLで始まるすべてのリンクを返さなければなりません複数のセレクタで大文字小文字を区別しないでfindを使用する

    valNow.find("a[href^='/GalleryDetail.aspx'], a[href^='/gallerydetail.aspx'], a[href^='GalleryDetail.aspx'], a[href^='gallerydetail.aspx'], 
    a[href^='/sketchbook.aspx'], a[href^='/SketchBook.aspx'], 
    a[href^='sketchbook.aspx'], a[href^='SketchBook.aspx']"); 
    

    は、私が検索し、私は私ができることを読む:この時点で

    /GalleryDetail.aspx 
    /gallerydetail.aspx 
    GalleryDetail.aspx 
    gallerydetail.aspx 
    /sketchbook.aspx 
    /SketchBook.aspx 
    SketchBook.aspx 
    sketchbook.aspx 
    

    を、私はこれを使用していますフィルタを使用していますが、これは複数のセレクタなので、どこから開始するのかはわかりません。また、私はこれを使って無視することもできると思った。

    valNow.find("a[href^='/[gG]allery[dD]etail.aspx']") 
    

    しかし、何とかリンクを返さない。

    すべてのヘルプは大幅に

    答えて

    1

    Array.prototype.filter(およびArray.prototype.some)と可能な解決策をいただければ幸いです

    $("a").filter((_, el) => { 
     
         var startsWith = ["/gall", "sketch"], // values to look for 
     
          href = (el.getAttribute("href") || "").toLowerCase(); // the href value as defined in the markup 
     
        
     
         return startsWith.some((val) => href.indexOf(val) == 0); // returns true if the current elements (<el>) href attribute starts with (== 0) any of the values in <startsWith> 
     
    //  return startsWith.some((val) => href.indexOf(val) == 0 || href.indexOf("/" + val) == 0) 
     
         }) 
     
         .addClass("foo");
    .foo { background-color: yellow }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <a href="/GalleryDetail.aspx">/GalleryDetail.aspx</a> 
     
    <a href="/gallerydetail.aspx">/gallerydetail.aspx</a> 
     
    <a href="GalleryDetail.aspx">GalleryDetail.aspx</a> 
     
    <a href="gallerydetail.aspx">gallerydetail.aspx</a> 
     
    <a href="/SketchBook.aspx">/SketchBook.aspx</a> 
     
    <a href="/sketchbook.aspx">/sketchbook.aspx</a> 
     
    <a href="SketchBook.aspx">SketchBook.aspx</a> 
     
    <a href="sketchbook.aspx">sketchbook.aspx</a>

    +0

    あなたアンドレアスありがとう、それはまたずにピックアップすることは可能ですスラッシュを使用するか、 'startsWith = ["/gall "、" gall "、"/sketch "、" sketch "]' – puntapret

    +0

    を厳密に言うとこれは "もう"開始s with "と書かれていますが、確かに可能です:)私は' 'と'/ 'を探すコード(2番目のコメントのコメント)に代替を追加しました。この変更により、 'startsWith'配列は' ["gall"、 "sketch"] 'に減らすことができました。 [Here](https://jsfiddle.net/h04cdwd7/)は、変更を加えたバイブルです。 – Andreas

     関連する問題

    • 関連する問題はありません^_^