Dojo并找到没有名称和动态ID的元素

时间:2014-07-24 21:57:35

标签: input dojo

嘿,Dojo(版本8)可以在不知道ID和类的情况下获得输入标记,这样我就可以更改输入框的样式了吗?所有输入框(我有8个)都有相同的类名。

请注意,我无法在网页上编辑以下代码。我只能使用“onShow”属性

<input 
  dojoattachpoint="textbox,focusNode,_aroundNode" 
  dojoattachevent="onblur:onBlur,onfocus:onFocus,onkeyup:onKeyUp" 
  id="2c6af1dc-80cb-44f2-864d-1fb00216895dF_SingleLine-widget" 
  name="" 
  class="dijitReset dijitTextBox notDojoDndHandle" 
  type="text" 
  tabindex="0" 
  aria-label="text" 
  width="auto" 
  value="" 
  aria-describedby="2c6af1dc-80cb-44f2-864d-1fb00216895dF_SingleLine-widget-placeholder"
  style="max-width: 2.5em; width: 90%;">

<span 
  class="dijitPlaceHolder dijitInputField" 
  id="2c6af1dc-80cb-44f2-864d-1fb00216895dF_SingleLine-widget-placeholder" 
  style="max-width: 2.5em; width: 90%;">
  Ex: Bob
</span>

我认为最简单的方法是找到 Ex:Bob ,然后退回一个元素,理论上它将在输入框部分,但我不确定是否/如何做如果它甚至可以在第一时起工作。

任何帮助都会很棒!谢谢!

更新

dojo.query("span.dijitPlaceHolder.dijitInputField").forEach(function(node, index, arr){
      if (node.innerHTML === 'Ex: Bob') {
          var foundIt = dojo.query(node).prev();

          dojo.addClass(foundIt, "testClass");
      }
});

它永远不会在输入类中放入 testClass

而不是我需要做的事情:

class="dijitReset dijitTextBox notDojoDndHandle testClass" 

它仍然有这个:

class="dijitReset dijitTextBox notDojoDndHandle" 

1 个答案:

答案 0 :(得分:0)

您是否可以访问支持模板的javascript文件?如果是这样,您可以从附加点引用它。

this.textbox

虽然我不确定为什么你的输入对象有这么多的附加点。

如果这不起作用,那么如何唯一标识输入框?是输入的类型吗?这是他们的立场吗?如果是这样,您可以使用dojo / query来处理此问题。您可以找到dojo / query here

的文档