2016-07-07 113 views
0

我有身体一个数据节点ID属性在jQuery中找到集合中元素的匹配值,并返回该元素

<body data-node-id="1093> 

我也有,这可能是以下集合中匹配的ID .navItemParent

<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 tag的当前值相匹配。

我想(在若跌破条件)

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

你可以得到body节点ID,然后找到一个匹配节点ID的所有元素:

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 

这将是l条选择:$("a[data-node-id='" + $("body").data("node-id") + "']")

0

你可以使用jQuery的attribute selectorattr function的组合,以检查是否至少有一个a项目,其“数据节点-id”属性是相同的body的之一。

$(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>

相关问题