[英]Jquery selecting a nested element inside the next element
從下面的結構中,我試圖在按鈕后面的跨度上放置一個類,但是我似乎無法遍歷包含跨度的div。
我可以使用以下方法定位div:
$("button").next('div').addClass('alert');
但是不能使用以下方法將該類直接應用於范圍:
$("button").next('div > span').addClass('alert');
要么
$("button").next('div').next('span').addClass('alert');
我的示例結構是
<button>Click</button>
<div>
<span></span>
</div>
<button>Click</button>
<div>
<span></span>
</div>
您需要使用查找功能。
請嘗試以下方法:
$("button").next('div').find('span').addClass('alert');
$("button").next('div').find('span').addClass('alert');
.alert{ color:red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button>Click</button> <div> <span>abc</span> </div> <button>Click</button> <div> <span>def</span> </div>
另一個解決方案是使用子方法。
$("button").next('div').children('span').addClass('alert');
.alert{ color:red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button>Click</button> <div> <span>abc</span> </div> <button>Click</button> <div> <span>def</span> </div>
$("button").next('div').find('span').addClass('alert');
.alert{color:red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button>Click</button> <div> <span>this</span> </div> <button>Click</button> <div> <span>this</span> </div>
這應該工作。 與.find()
一起使用.next()
.find()
如果您需要添加類來span
單擊button
則需要處理button
click event
$(function () {
$("button").click(function () {
$(this).next('div').find('span').addClass('alert');
});
});
根據文檔,next()遍歷兄弟姐妹:
.next( [selector ] )
Description: Get the immediately following sibling of each element in the set
of matched elements. If a selector is provided, it retrieves the next sibling
only if it matches that selector.
因此,您需要改為使用children()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.