3

我有一个ul

<ul id="variants">
      <a href="#" class="add_options right" data-id="70281696560900'>Add more </a>
      <input type="text" class="cat_name" onClick="prop()">
      <li class="current">
           <input id="product_variants_attributes_1371725880992_name" size="30" type="text">
      </li>  
      <li class="current"> 
           <input id="product_variants_attributes_1371725883311_name" name="product[variants_attributes][1371725883311][name]" size="30" type="text"> 
      </li>
      <li> Add more link allows you to add more li's(options) </li>

      <input type="text" class="cat_name" onClick="prop()">
      <li class="current">
           <input id="product_variants_attributes_1371725880992_name" size="30" type="text">
      </li>  
      <li class="current"> 
           <input id="product_variants_attributes_1371725883311_name" name="product[variants_attributes][1371725883311][name]" size="30" type="text"> 
      </li>
</ul>

onclick 函数prop()获取输入到该 input( cat_name) 中的值,现在我只想在下一个输入之前用类填充 li 输入字段cat_name及其值 ( .cat_name.val())。所以基本上,它忽略了下一个之后的字段.cat_name,只用它的值填充它之前的 li 的输入字段。
因此填充所有 li->input 文本,直到下一个。它不能在它和下一个之间填充任何 li->input。

你会怎么做?

谢谢。

4

2 回答 2

1

如果要设置接下来 2 个输入的值,可以使用 .nextUntil()方法选择下一个同级li元素,直到下一个input具有 类的元素cat_name

$('input.cat_name').blur(function() {
    $(this).nextUntil('input.cat_name') 
           .find('input[type=text]') 
           .val(this.value);
});

还有一个.prevUntil()API 会选择之前的兄弟姐妹,直到指定的选择器。

http://jsfiddle.net/mDfQT/

于 2013-06-20T11:36:49.127 回答
0
    function prop() {
        //get the current input
        var source = $(this.event.currentTarget);
        //foreach sibling of this input until the next .catImage
        source.nextUntil('.cat_name').each(function () {
        //set the value of the input elements to source value
            $(':input', $(this)).val(source.val());
        });
    }

使用 jQuery

于 2013-06-20T12:01:28.927 回答