id的Jquery / javascript选择器以特定文本开头并获得最终值

时间:2017-04-13 09:44:29

标签: javascript jquery html css

我有动态文本框,可以向下级联页面。当刷新发生时,我需要能够评估用户添加到页面的文本框数量。

因此,用户将点击“添加框”,这将生成一个包含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。

2 个答案:

答案 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)

您可以使用idmap()get()返回数字数组,然后使用Math.max返回最高数字。

&#13;
&#13;
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;
&#13;
&#13;