2016-07-07 9 views
0

を返す私は.navItemParentは、私は身体</p> <pre><code><body data-node-id="1093> </code></pre> <p>上のデータノード-id属性を持つ要素のセットに一致する値を検索し、その要素

の下で、次のコレクション内の一致するid何ができるかにもを持っています
<div class="row small-up-5 navItemParent"> 
    <div class="column navItem"> 
     <a href="/" data-node-id="1093"><span class="topLineNav">Dining</span></a> 
    </div> 
    <div class="column navItem"> 
     <a href="/" data-node-id="1111"><span class="topLineNav">Dining</span></a> 
    </div> 
    <div class="column navItem"> 
     <a href="/" data-node-id="1211"><span class="topLineNav">Dining</span></a> 
    </div> 
</div> 

基本的に私はaタグ上の任意のdata-node-idbodyタグに現在の値と一致するかどうかを確認する必要があります。

私はあなたが、一致するノードIDを持つすべての要素を見つけ、bodyノードのIDを取得することができます(以下の場合は条件)

if ($(".navItemParent").find(" .navItem a").data("node-id") === $("body").data("node-id")) { 
     $(".navItemParent").find("a.active").removeClass("active"); 
     $(".navItemParent .navItem a").addClass("active"); 
    }; 
+0

そして、あなたがしようとしたjQueryのコードですか? – j08691

+0

私は@ j08691を試したコードを追加しました – wingyip

答えて

1

これは、私が思うにそれを行います。

var matches = $(".navItemParent").find('a[data-node-id="' + $("body").data("node-id") + '"]'); 
alert("Found " + matches.length + " results"); 
1

を試してみました:構築、

var bodyNodeID = $("body").data("nodeId"); 
var matchingNodeElements = $(".navItemParent").find("[data-node-id='" + bodyNodeID + "']"); 
1

は、IDをつかみますjQueryに作業を依頼してください。

var node_id = $(document.body).attr("data-node-id"), 
    element = $('.navItemParent').find('a[data-node-id="' + node_id + '"]'); 

またはバニラJS

var node_id = document.body.getAttribute("data-node-id"), 
    element = document.querySelector('.navItemParent a[data-node-id="' + node_id + '"]'); 
1

あなたはjQueryのためのセレクタとして身体からその値を渡すことができます:

var nodebody = $('body').data('node-id'); 
 
$('a[data-node-id="'+nodebody+'"]').css('color','red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body data-node-id="1093"> 
 
<div class="row small-up-5 navItemParent"> 
 
    <div class="column navItem"> 
 
     <a href="/" data-node-id="1093"><span class="topLineNav">Dining</span></a> 
 
    </div> 
 
    <div class="column navItem"> 
 
     <a href="/" data-node-id="1111"><span class="topLineNav">Dining</span></a> 
 
    </div> 
 
    <div class="column navItem"> 
 
     <a href="/" data-node-id="1211"><span class="topLineNav">Dining</span></a> 
 
    </div> 
 
</div>

1
var elementExists=$("a[data-node-id='" + $("body").data("node-id") + "']").length > 0; // will return true if found 

このwil $("a[data-node-id='" + $("body").data("node-id") + "']")

0

あなたはその「データノードID」属性bodyの一方の同じであるa項目が少なくとも存在するかどうかを確認するためにjQueryのattribute selectorattr functionの組み合わせを使用することができる:Lはセレクタです。

$(function() { 
 
    // demo: just to add the `data-node-id` attribute to the `body` tag 
 
    $("body").attr("data-node-id", "1093"); 
 

 
    alert($("a[data-node-id = '" + $("body").attr("data-node-id") + "']").length > 0); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="row small-up-5 navItemParent"> 
 
    <div class="column navItem"> 
 
    <a href="/" data-node-id="1093"><span class="topLineNav">Dining</span></a> 
 
    </div> 
 
    <div class="column navItem"> 
 
    <a href="/" data-node-id="1111"><span class="topLineNav">Dining</span></a> 
 
    </div> 
 
    <div class="column navItem"> 
 
    <a href="/" data-node-id="1211"><span class="topLineNav">Dining</span></a> 
 
    </div> 
 
</div>

関連する問題