javascript - 如何在 javascript 中迭代 this.value

标签 javascript jquery oop drupal-6

我正在尝试将 this.value 与 Drupal.settings["pis_var"+ i].hasOwnProperty(j) 进行比较。

但是,我无法迭代 this.value。它只是与第一个值进行比较,而不是逐个比较。

如有任何建议,我们将不胜感激。

var controllers = $("[data-drupal]");
var pis = $("[data-pis]");

var i = 0;
var controller = $(controllers[i]);
var inventory = $(pis[i]);
var index = 0;   
$(controllers[i]).each(function (index) {
  console.log(Drupal.settings["pis_var" + i]);
  console.log(this.value);
  var j=0;
  for (j in Drupal.settings["pis_var" + i])
  {

       if (Drupal.settings["pis_var" + i].hasOwnProperty(j))        
       {           
          console.log(Drupal.settings["pis_var" + i][j] + '--' + i + '--' + j + '--' + this.value);
          if (this.value !== Drupal.settings["pis_var" + i][j])
          {
              console.log(this.value + '--' + Drupal.settings["pis_var" + i][j]);
          }

       }
      }
  i++;

});

HTML 代码(即 drupal 代码) 我是从页面源代码中导出的。

    <table>
      <tbody>
        <tr>
  <td class="label">Experiment&nbsp;#:&nbsp;<span class="form-required" title="This field is required.">*</span></td>
  <td><div class="form-item" id="ExExCode-wrapper">
 <input type="text" maxlength="8" name="ExExCode" id="ExExCode" size="8" value="201914" data-drupal="pic_code" data-pis="ExExCode_pis" class="form-text required" />
</div>
</td>
</tr>

<tr>
  <td class="label">Experiment&nbsp;Name&nbsp;<span class="form-required" title="This field is required.">*</span></td>
  <td><div class="form-item" id="edit-ExName-wrapper">
 <input type="text" maxlength="60" name="ExName" id="edit-ExName" size="60" value="Seismic sliding law" data-drupal="ExName" data-pis="ExName_pis" class="form-text required" />
</div>
</td>
</tr>

<tr>
  <td class="label">Experiment&nbsp;Description&nbsp;<span class="form-required" title="This field is required.">*</span></td>
  <td><div class="form-item" id="edit-ExDesc-wrapper">
 <input type="text" maxlength="80" name="ExDesc" id="edit-ExDesc" size="80" value="Using passive seismics to determin a glacier sliding law" data-drupal="ExDesc" data-pis="ExDesc_pis" class="form-text required" />
</div>
</td>
</tr>

<tr>
  <td class="label">Sponsor</td>
  <td><div class="form-item" id="edit-ExSponsor-wrapper">
 <input type="text" maxlength="18" name="ExSponsor" id="edit-ExSponsor" size="18" value="UNIV/N/A" data-drupal="ExSponsor" data-pis="ExSponsor_pis" class="form-text" />
</div>
</td>
</tr>
<tr>
  <td class="label">Sensors</td>
  <td><div class="form-item" id="edit-types-Sensor-wrapper">
 <input type="text" maxlength="25" name="types_Sensor" id="edit-types-Sensor" size="25" value="" data-drupal="types_Sensor" data-pis="types_Sensor_pis" class="form-text" />
</div>
</td>
</tr>

<tr>
  <td class="label">Recorders</td>
  <td><div class="form-item" id="edit-types-Recorder-wrapper">
 <input type="text" maxlength="25" name="types_Recorder" id="edit-types-Recorder" size="25" value="" data-drupal="types_Recorder" data-pis="types_Recorder_pis" class="form-text" />
</div>
</td>
</tr>
<tr>
  <td class="label">Foreign?</td>
  <td><div class="form-radios"><div class="form-item" id="edit-ExDF-N-wrapper">
 <label class="option" for="edit-ExDF-N"><input type="radio" id="edit-ExDF-N" name="ExDF" value="N"   data-drupal="ExDF" data-pis="ExDF_pis" class="form-radio" /> NO</label>
</div>
<div class="form-item" id="edit-ExDF-Y-wrapper">
 <label class="option" for="edit-ExDF-Y"><input type="radio" id="edit-ExDF-Y" name="ExDF" value="Y"   data-drupal="ExDF" data-pis="ExDF_pis" class="form-radio" /> Yes</label>
</div>
</div></td>
</tr>
<tr>
  <td class="label">Billing&nbsp;Address</td>
  <td><div class="form-item" id="edit-ExBilling-wrapper">
 <textarea cols="50" rows="10" name="ExBilling" id="edit-ExBilling"  data-drupal="ExBilling" data-pis="ExBilling_pis" class="form-textarea resizable "></textarea>
</div>
<div class="textarea-identifier description">CKEditor: the ID for <a href="/admin/settings/ckeditor">excluding or including</a> this element is <em>passcal:sdb/expt/201914/pisreview.edit-ExBilling</em>.</div></td>
</tr>

提前谢谢您。

最佳答案

您仅迭代一个 Controller 。 $(controllers[i]).each() 启动时进行评估,因此它只使用 i=0,而不是当您执行i++时转到下一个 Controller 。

你应该使用

controllers.each(function(i) {
    ...
})

您无需自己增加i

关于javascript - 如何在 javascript 中迭代 this.value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59901520/

相关文章:

javascript - 停止淡出/淡出事件jquery

javascript - Meteor 不输出 MongoDB 查询

javascript - 我可以在不影响下面所有模块的情况下切换 float 模块吗?

jquery - 使用 jquery.html() 更改 fancybox 中的内容

c++ - 如何在 UML 类图中描述指向类的指针?

c++ - 我的私有(private)方法如何访问 C++ 中的公共(public)枚举?

javascript - Rails 和 React : TypeError: Cannot call method 'map' of undefined

javascript - jQuery 移动 : applying method selectmenu on multiple select fields

c - C语言是面向对象的吗?

javascript - 标签文本框服务器控件