如何 select 特殊标签在另一个带有 jquery 的特殊标签之后
how to select special tag after another special tag with jquery
我有一个 html 页面,在 <span class="class1">
之后有一些 <input>
标签,我想 select 所有这些输入标签 disabled
我如何使用 jQuery select 或者?
我正在测试 $('span.class1+ :disabled')
,但这行不通!
我的html是这样的:
<span class="class1"></span>
<input type="text" disabled/>
<span class="class1"></span>
<input type="text"/>
<input type="text" disabled/>
我想select所有输入都像第一个输入(注意:不像第三个输入)
使用下面的代码。在 span.class1
之后获取禁用元素
详细了解 :disabled 选择器
您需要检查 .nextAll()
Get all following siblings of each element in the set of matched
elements, optionally filtered by a selector.
$(document).ready(function(){
$('span.class1').nextAll('input:disabled');
});
工作演示
$(document).ready(function(){
$('span.class1').nextAll('input:disabled').val('disabled text box')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="class1"> span </span>
<input type="text" class="" disabled />
<span class="class1"></span>
<input type="text" disabled/>
<span class="class1"></span>
<input type="text"/>
<input type="text" disabled/>
As TrueBlueAussie
mention in comment i have add new option to solve
issue
$(document).ready(function(){
$('span.class1').nextUntil('span','input:disabled').val('disabled text box')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<span class="class1"> span class1 </span>
<input type="text" class="" disabled /><br/>
<span class="class1"> span class1 </span>
<input type="text" disabled/><br/>
<span class="class1"> span class1 </span>
<input type="text"/><br/>
<input type="text" disabled/><br/>
<span class="class2"> span class2 </span>
<input type="text"/><br/>
<input type="text" disabled/>
尝试利用 Next Siblings Selector (“prev ~ siblings”)
Description: Selects all sibling elements that follow after the "prev"
element, have the same parent, and match the filtering "siblings"
selector.
var disabled = $("span.class1 ~ input:disabled");
disabled.css("border", "2px solid brown");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="class1"></span>
<input type="text" disabled />
<span class="class1"></span>
<input type="text"/>
<input type="text" disabled />
其他答案对何时停止搜索没有限制。他们在每个 class1 跨度之后处理 所有兄弟姐妹 (不管他们之间的任何 span
,应该充当 "fences")。
根据您的布局,您可能希望它在到达下一个跨度后停止,因此使用 nextUntil
来限制搜索并使用过滤器来仅定位所需的元素:
$(document).ready(function(){
$('span.class1').nextUntil('span').filter('input:disabled').val('disabled text box')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="class1"> span class1 </span>
<input type="text" class="" disabled /><br/>
<span class="class1"> span class1 </span>
<input type="text" disabled/><br/>
<span class="class1"> span class1 </span>
<input type="text"/><br/>
<input type="text" disabled/><br/>
<span class="class2"> span class2 </span>
<input type="text"/><br/>
<input type="text" disabled/>
你会注意到这个没有设置最后输入的文本(因为它没有遵循 class1
跨度。
正如 @Nishit Maheta
所指出的(在将我的回答附加到他的之后),您可以将其缩短为:
$('span.class1').nextUntil('span', 'input:disabled').val('disabled text box')
我有一个 html 页面,在 <span class="class1">
之后有一些 <input>
标签,我想 select 所有这些输入标签 disabled
我如何使用 jQuery select 或者?
我正在测试 $('span.class1+ :disabled')
,但这行不通!
我的html是这样的:
<span class="class1"></span>
<input type="text" disabled/>
<span class="class1"></span>
<input type="text"/>
<input type="text" disabled/>
我想select所有输入都像第一个输入(注意:不像第三个输入)
使用下面的代码。在 span.class1
详细了解 :disabled 选择器
您需要检查 .nextAll()
Get all following siblings of each element in the set of matched elements, optionally filtered by a selector.
$(document).ready(function(){
$('span.class1').nextAll('input:disabled');
});
工作演示
$(document).ready(function(){
$('span.class1').nextAll('input:disabled').val('disabled text box')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="class1"> span </span>
<input type="text" class="" disabled />
<span class="class1"></span>
<input type="text" disabled/>
<span class="class1"></span>
<input type="text"/>
<input type="text" disabled/>
As
TrueBlueAussie
mention in comment i have add new option to solve issue
$(document).ready(function(){
$('span.class1').nextUntil('span','input:disabled').val('disabled text box')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<span class="class1"> span class1 </span>
<input type="text" class="" disabled /><br/>
<span class="class1"> span class1 </span>
<input type="text" disabled/><br/>
<span class="class1"> span class1 </span>
<input type="text"/><br/>
<input type="text" disabled/><br/>
<span class="class2"> span class2 </span>
<input type="text"/><br/>
<input type="text" disabled/>
尝试利用 Next Siblings Selector (“prev ~ siblings”)
Description: Selects all sibling elements that follow after the "prev" element, have the same parent, and match the filtering "siblings" selector.
var disabled = $("span.class1 ~ input:disabled");
disabled.css("border", "2px solid brown");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<span class="class1"></span>
<input type="text" disabled />
<span class="class1"></span>
<input type="text"/>
<input type="text" disabled />
其他答案对何时停止搜索没有限制。他们在每个 class1 跨度之后处理 所有兄弟姐妹 (不管他们之间的任何 span
,应该充当 "fences")。
根据您的布局,您可能希望它在到达下一个跨度后停止,因此使用 nextUntil
来限制搜索并使用过滤器来仅定位所需的元素:
$(document).ready(function(){
$('span.class1').nextUntil('span').filter('input:disabled').val('disabled text box')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="class1"> span class1 </span>
<input type="text" class="" disabled /><br/>
<span class="class1"> span class1 </span>
<input type="text" disabled/><br/>
<span class="class1"> span class1 </span>
<input type="text"/><br/>
<input type="text" disabled/><br/>
<span class="class2"> span class2 </span>
<input type="text"/><br/>
<input type="text" disabled/>
你会注意到这个没有设置最后输入的文本(因为它没有遵循 class1
跨度。
正如 @Nishit Maheta
所指出的(在将我的回答附加到他的之后),您可以将其缩短为:
$('span.class1').nextUntil('span', 'input:disabled').val('disabled text box')