如何在第一个和第二个<dd>
<dt>
个元素
身份不是静态的,只有<dl id="allData">
是静态的!
<div>
<dl id="allData">
<dt id="f">Data :</dt>
<dd id="sd">A</dd>
<dd id="bf">B</dd>
<dd id="r3">C</dd>
<dd id="br">D</dd>
.
.
<dd id="u6">L</dd>
<dt id="f1">Data1</dt>
<dd id="dw">A</dd>
<dd id="jy">B</dd>
<dd id="5d">C</dd>
<dd id="gg">D</dd>
.
.
<dd id="2s">K</dd>
</dl>
</div>
如果我有一个<dd>
元素,我如何获得<dl id='allData'>
的所有<dt>
元素?
答案 0 :(得分:1)
您可以使用元素索引:
var i1 = $(document.getElementById(id1)).index(),
i2 = $(document.getElementById(id2)).index(),
$elements = $('#allData dd').filter(function(){
var i = $(this).index(); return i1<i && i<i2
});
var i1 = $('#f').index(),
i2 = $('#f1').index(),
$elements = $('#allData dd').filter(function(){
var i = $(this).index(); return i1<i && i<i2
});
// print the result on the snippet
document.body.innerHTML = JSON.stringify($elements.map(function(){ return this.id }).get());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<dl id="allData">
<dt id="f">Data :</dt>
<dd id="sd">A</dd>
<dd id="bf">B</dd>
<dd id="r3">C</dd>
<dd id="br">D</dd>
.
.
<dd id="u6">L</dd>
<dt id="f1">Data1</dt>
<dd id="dw">A</dd>
<dd id="jy">B</dd>
<dd id="5d">C</dd>
<dd id="gg">D</dd>
.
.
<dd id="2s">K</dd>
</dl>
</div>
&#13;
答案 1 :(得分:1)
您可以尝试
var $selected_siblings= $('#f').nextUntil('#f1');
//根据您的新要求尝试此
$("#allData").children("dt").slice(0,1)
.watever_method_您想尝试
答案 2 :(得分:0)
非常感谢@ denys-séguret和@ nomeaning25
结果:
var i1 = $($("#allData dt")[0]).index(),
i2 = $($("#allData dt")[1]).index(),
$elements = $('#allData dd').filter(function () {
var i = $(this).index();
return i1 < i && i < i2
});
console.log(JSON.stringify($elements.map(function () {
return this.id
}).get()));
并感谢@ yo-yo
<强>结果:强>
console.log($("#allData").children("dt").slice(0, 1));