如何使用无序模式获取DOM元素的最大id

时间:2011-07-15 11:44:31

标签: jquery attributes traversal

我有一个带有ID的表单元素的无序列表

 <ul class="sortable" id="userForm">
<li style="visibility: hidden;" class="ui-state-default">Test</li>
<li style="display: list-item;" class="ui-state-default">
<div class="control">
  <label class="">Label Here</label>
  <textarea readonly="readonly" id="4"></textarea>
  <div class="delete" style="display: inline;"><sup>x</sup></div>
  <div class="properties txtarea" style="display: inline;">Properties</div>
</div>
</li>
<li style="display: list-item;" class="ui-state-default ">
<div class="control">
  <label class="">Label Here</label>
  <input readonly="readonly" id="3" name="txt" value="" type="text">
  <div class="delete" style="display: inline;"><sup>x</sup></div>
  <div class="properties txtbox" style="display: inline;">Properties</div>
</div>
  </li>
  <li style="display: list-item;" class="ui-state-default">
<div class="control">
  <label>&nbsp;</label>
  <input id="2" type="radio">
  <span class="controlText">Radio Button</span>
  <div class="delete" style="display: inline;"><sup>x</sup></div>
  <div class="properties radio" style="display: inline;">Properties</div>
</div>
 </li>
<li style="display: list-item;" class="ui-state-default">
<div class="control">
  <label>&nbsp;</label>
  <input id="1" type="checkbox">
  <span class="controlText">Check Box</span>
  <div class="delete" style="display: inline;"><sup>x</sup></div>
  <div class="properties chkbox" style="display: inline;">Properties</div>
</div>
</li>
</ul>

如何从这些元素中获取最大ID。 ID不是特定的顺序,但元素类和格式是相同的。

3 个答案:

答案 0 :(得分:4)

这样的事情可以起作用

var max = 0;
$('.control').each(function(i,n){
 // var check = $(n).children('input').attr('id')/*.prop() if jquery 1.6*/
  var check = $(n).children('.the_id').attr('id')/*.prop() if jquery 1.6*/
  if(check>max) max = check;
});

这是jsfidle版本

答案 1 :(得分:4)

尝试以下代码:

var maxId = 0;
$(".sortable *[id]").each(function() {
    if(maxId < $(this).attr("id")){ maxId = $(this).attr("id")}
});

alert("max id value is: "+maxId);

演示:http://jsfiddle.net/5UZTD/

答案 2 :(得分:0)

建立Val的答案

var max = 0;
$('.control *[id]').each(function(i,n){
  var check = $(n).attr('id')/*.prop() if jquery 1.6*/
  if(check>max) max = check;
});

选择器会找到任何ID为attribute的元素。