在querySelector中使用变量和id

时间:2016-10-13 13:46:33

标签: javascript jquery-selectors

我想使用querySelector从输入列获取值。我需要使用两个id来获取正确的列。第二个id存储在变量中,并且是一个整数值。我尝试了不同的东西,但我没有得到任何东西。目前它给我null。

 checkDescriptionField = document.querySelector('#methodProperties input#'+'descriptionFieldId'); 
 if(typeof checkDescriptionField !== 'undefined' && checkDescriptionField !== null)
        {
            descriptionFieldValue = document.querySelector('#methodProperties input#'+'descriptionFieldId').textContent; 
        }

外部id是methodProperties,内部是输入id =“0eca409e-e2f7-467d-bd5e-dff9b63e3715”,我想得到它的值=“Customers”

<div id="methodProperties">
<td role="gridcell">
<input id="0eca409e-e2f7-467d-bd5e-dff9b63e3715" class="k-textbox gridTable propertiesField" value="Customers" readonly="" data-role="droptarget"   type="text">
<span class="errorTooltip" style="display: none;">
<span class="deleteTooltip" style="padding: 5px; display: inline;" title="Delete Value" data-role="tooltip">
</td>

我试过这个,但是我收到了无效错误

checkDescriptionField = document.querySelector('#methodProperties input#'+descriptionFieldId); 
if(typeof checkDescriptionField !== 'undefined' && checkDescriptionField !== null)
        {
            descriptionFieldValue = document.querySelector('#methodProperties input#'+descriptionFieldId).textContent; 
        }

2 个答案:

答案 0 :(得分:4)

  

外部id是methodProperties,内部是输入   id =“0eca409e-e2f7-467d-bd5e-dff9b63e3715”我希望得到它的价值   = “客户”

试试这个

descriptionFieldValue = document.querySelector( '#' + descriptionFieldId ).value; 

或者因为methodProperties

中只有一个输入
descriptionFieldValue = document.querySelector( '#methodProperties input' ).value; 

如果要重复id,请使用data-id属性

<div data-id="methodProperties">
  <td role="gridcell">
    <input value="customers">
  </td>
</div>

和js为

descriptionFieldValue = document.querySelector( 'div[data-id="methodProperties"] input' ).value;  //this will take the value from first methodProperties

答案 1 :(得分:1)

您应该使用document.querySelector(...).value代替.textContent。这样您就可以访问输入字段的值。

https://jsfiddle.net/e0h0ajdb/