0

我有一张这样的桌子:

  <tr>
      <td><td>
      <td id="some_id" name="some_name"><td>
      <td id="some_other_id" name="some_other_name"></td>
      <td></td>
  </tr>

现在我想在没有第一个和最后一个孩子改变id的情况下把所有的元素都放在里面。我使用这段代码:

    var i = 0;
    $(changeRow).children().not(':first').not(':last').children().each(function() {
         var replacementField = 'column-' + i++ + '-field-' + ndx;
         $(this).id = $(this).id.replace(replacementField);
    }); 

但它不起作用。

4

2 回答 2

0

首先,什么是changeRow?身份证?一个对象?
所以你可以改变你的选择器,比如 maximkou 说的tr td=> 选择元素中的所有tdtr元素。
使用您的选择器,您经常调用.children()一次并获取td.
如果您只想用新的 id 替换 id,您可以在一次调用中简化替换 id 的过程。

var i = 0;
$("tr td").not(':first').not(':last').each(function() {
    $(this).attr('id', 'column-' + i++ + '-field' + ndx);
}); 

在 jsFiddle 上查看此代码:http: //jsfiddle.net/AAshX/1/

于 2013-06-14T10:00:10.453 回答
0
var i = 0;
$('tr td').not(':first').not(':last').each(function(){
    var replacementField = 'column-' + i++ + '-field-' + ndx;
    $(this).attr('id', $(this).attr('id').replace(replacementField));
});
于 2013-06-14T09:52:41.077 回答