2017-04-05 62 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?