2014-10-07 64 views
0

HTML代码如下:获取子输入元素的值更新

<div id="input2" class="clonedInput"> 
    <div class="col-sm-3 text_flied"> 
     <div class="col-sm-4 no-padding"> 
      <input type="" class="bwidth" value="" placeholder="300" name="fr_width[1]"> 
     </div> 
     <div class="col-sm-1 text_middle no-padding"> 
      <p>X</p> 
     </div> 
     <div class="col-sm-4 no-padding"> 
      <input type="" class=" bheight" value="" placeholder="300" name="fr_height[1]"> 
     </div> 
    </div> 
</div> 

我想更新输入字段fr_width[1]的价值。这部分动态创建为fr_width[2]fr_width[3]等。

要更新值,我使用下面的代码,但它不起作用。我也尝试了children()选项。

$("#input2").siblings(".col-sm-4 input").val('123'); 

$("#input2").closest(".bwidth").val('123'); 

两种方式都不起作用。

+0

使用find()方法,而不是兄弟姐妹()... – 2014-10-07 11:26:05

+0

如果两个输入值相同则:)'$( “#输入2”)找到(”山坳。 -sm-4 input“)。val('123');'应该可以正常工作。 – 2014-10-07 11:30:09

+0

@ C-link尼泊尔:我试过了。它更新的价值。但是2个字段被更新。这里有2个文本字段,2个div在col-sm-4的类名中。通过使用这两个输入字段更新? (fr_width [1]或fr_height [1])? – 2014-10-07 11:37:51

回答

1

尝试DEMO: -

$("#input2").find(".text_flied").find(".bwidth").val('123'); 

OR

$("#input2").children(".text_flied").find(".bwidth").val('123'); 

OR

$("#input2").find(".bwidth").val('123'); 

OR

的捷径,你可以去

$("#input2 .bwidth").val('123'); 

1) - closest仅适用于祖先或选择本身。

2) - siblings只适用于相同的平面节点。

有很多方法可以找到你的required selector并设置value它。

谢谢!

+0

谢谢。很高兴看到。好工作 – 2014-10-07 11:41:13

+0

欢迎@ Vasanthan.R.P – 2014-10-07 12:26:25

0

请阅读jQuery的siblingsclosest的文档。

  • 兄弟姐妹是获得在同一 DOM级别选择的元素,在这种情况下#input2,而不是它的孩子
  • 最近的是在获得的#input2最接近元,同比增长DOM树

你想要什么简单地说就是:

$('#input2 input.bwidth').val('123') 

仅更新.bwidth输入项下的#input2。如果还有更多,则$('input.bwidth').val('123')应更新类名为bwidth的所有输入。

以下是关于jQuery's selectors如何工作的参考。

0

你可以简单地使用这样的东西。如果你想动态获取特定物品。

var itemIndex = 1; 
$("input[name='fr_width["+itemIndex +"]']").val("123") 
0

为什么这么难?只需选择ID为“input2”的div内的所有输入域即可。所以你可以从返回的数组中选择inputfield。

例:

$('#input2 input').eq(0).val("123");