我有动态文本框,可以向下级联页面。当刷新发生时,我需要能够评估用户添加到页面的文本框数量。
因此,用户将点击“添加框”,这将生成一个包含id = doc0
的新文本框,添加另一个文本框将为id = doc1
,依此类推。
问题在于刷新,我无法检查用户达到的增量。
我尝试使用方法启动,但无法获得返回的长度。
$('[id^=document]')
理想情况下,在进入页面时,它会从文档开始获取所有ID,并告诉我它发现的最高值是什么。
EG:
<div id="doc1">some elements inside</div>
<div id="doc2">some elements inside</div>
<div id="doc3">some elements inside</div>
<div id="doc4">some elements inside</div>
找到答案值4。
答案 0 :(得分:2)
如果id总是按以下顺序排序,你可以使用count:
$('[id^=doc]').length;
console.log( $('[id^=doc]').length );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="doc1">some elements inside</div>
<div id="doc2">some elements inside</div>
<div id="doc3">some elements inside</div>
<div id="doc4">some elements inside</div>
否则你可以从最后一个匹配的元素中检索数字,如:
$('[id^=doc]').last().attr('id').split('doc')[1]
console.log( $('[id^=doc]').last().attr('id').split('doc')[1] );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="doc1">some elements inside</div>
<div id="doc2">some elements inside</div>
<div id="doc3">some elements inside</div>
<div id="doc4">some elements inside</div>
答案 1 :(得分:0)
您可以使用id
和map()
从get()
返回数字数组,然后使用Math.max
返回最高数字。
var value = Math.max(...$('[id^=doc]').map(function() {
return parseInt($(this).attr('id').match(/\d+$/));
}).get());
console.log(value)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="doc1">some elements inside</div>
<div id="doc2">some elements inside</div>
<div id="doc10">some elements inside</div>
<div id="doc4">some elements inside</div>
&#13;