2017-04-05 28 views
0

嘿所有我似乎无法得到这个jQuery的工作,即使我知道,它可以:jQuery的获取区域的ID修改,然后通过ID及部件的

我的HTML代码:

<div class="cd-panel from-right" id="va"> 
    <header class="cd-panel-header" style="max-width: 600px;"> 
     <h1 style="margin-top: 5px;" id="panHeading"></h1> 
    </header> 
    <div class="cd-panel-container" style="max-width: 600px; width: 600px;"> 
    [more html code here...] 
    <div class="input-group"> 
     <div class="input-group-addon"> 
      <span class="glyphicon glyphicon-envelope"></span> 
     </div> 
     <div class="col-sm-10"> 
      <input name="RequestID" disabled="True" class="form-control input-sm" 
      id="RequestID" style="width: 520px; max-width: 520px;" type="text"> 
     </div> 
    </div> 
    [more html code here...] 
</div> 
<div class="cd-panel from-right" id="VDA"> 
    <header class="cd-panel-header" style="max-width: 600px;"> 
     <h1 style="margin-top: 5px;" id="panHeading"></h1> 
    </header> 
    <div class="cd-panel-container" style="max-width: 600px; width: 600px;"> 
    [more html code here...] 
    <div class="input-group"> 
     <div class="input-group-addon"> 
      <span class="glyphicon glyphicon-envelope"></span> 
     </div> 
     <div class="col-sm-10"> 
      <input name="RequestID" disabled="True" class="form-control input-sm" 
      id="RequestID" style="width: 520px; max-width: 520px;" type="text"> 
     </div> 
    </div> 
    [more html code here...] 
</div> 

这是我的jQuery代码:

if (responce["personData1"][0].RequestID != 1) { 
    $('#va > #RequestID').val(responce["personData1"][0].RequestID); 
} 

但它决不会使值请求ID文本框内为VA即使它确实具有RequestID的值。如果我这样做:

$('#RequestID').val(responce["personData1"][0].RequestID); 

然后它在文本框中有值。

我会错过什么?

+2

HTML中的标识符必须是唯一的。 – Satpal

+0

当然你可以@Satpal http://jsfiddle.net/LzFAr/44/ – StealthRT

+0

RequestID是在这里用来解释还是它是litterally?如果这是错误的,因为ID应该是唯一的! –

回答

2

你需要使用,摆脱>它寻找直接的孩子和RequestID不是va元素的孩子。

$('#va #RequestID').val(responce["personData1"][0].RequestID) 

另请注意HTML中的标识符必须是唯一的。您可以指定一个类,然后使用它像

<input name="RequestID" disabled="True" class="form-control input-sm RequestID" style="width: 520px; max-width: 520px;" type="text"> 

然后

$('#va .RequestID').val(responce["personData1"][0].RequestID) 
+0

你是第一个例子工程就好了。 – StealthRT

1

试试这个:

$("#va [name='RequestID']").val(responce["personData1"][0].RequestID); 

我认为问题是,你正在试图获得一个一个ID的ID子,应该是唯一的,但是您在多个元素上使用“RequestID”作为ID。

+0

这工作。谢谢! – StealthRT

0

ID被设计为页面上的唯一选择器。因此,搜索将在第一场比赛后停止 如果您想根据常用模式在页面上选择多个元素,则应该选择类选择器。现在

,回答你的问题: HTML:

<input name="RequestID" disabled="True" class="some-input-class form-control input-sm" id="RequestID" style="width: 520px; max-width: 520px;" type="text"> 

和JS:

if (responce["personData1"][0].RequestID != 1) { 
    $('#va .some-input-class').val(responce["personData1"][0].RequestID); 
} 

的jsfiddle例如here

参考文献:

W3C docs

Is selecting by class or id faster than selecting by some other attribute?