1

すべての入力要素を見つけようとしていますが、要素の ID に基づいて、特定のキーワードに一致するように ID を検索したいと考えています。一致が見つかった場合は、その要素を配列に入れたいと思いtargetNodseます。変数nodesにはすべての入力が含まれており、配列をログに記録する[-1, -1, 0, 0]と、キーワード を持つ特定の入力要素が見つかったことがわかりますsurvey-answer。しかし、要素が見つかったと伝えるだけでなく、要素の属性にアクセスするにはどうすればよいでしょうか?

HTML

<input type="radio" id="poll-answer-8234" name="poll_430" value="8234">
<input type="radio" id="poll-answer-9234" name="poll_430" value="9234">  
<input type="radio" id="survey-answer-7866" name="poll_430" value="7866">
<input type="radio" id="survey-answer-8998" name="poll_430" value="8998">

JS

var targetNodes, nodes, count;

targetNodes = [];

nodes = document.getElementsByTagName("input");

for (count = 0; count < nodes.length; count++) {
    node = nodes[count].id.indexOf("survey-answer");
    targetNodes.push(node);
}

console.log(targetNodes);
4

3 に答える 3

2

indexOf呼び出しの結果ではなく、ノードを配列にプッシュします。

for (count = 0; count < nodes.length; count++) {
  var node = nodes[count].id.indexOf("survey-answer");
  if (node != -1) {
    targetNodes.push(nodes[count]);
  }
}
于 2013-01-06T13:53:16.663 に答える
0
var targetNodes, nodes, count;

targetNodes = [];

nodes = document.getElementsByTagName("input");

for (count = 0; count < nodes.length; count++)
{
    node = nodes[count].id.indexOf("survey-answer");

    if (node != -1)
    {
        targetNodes.push(nodes[count]);
    }
}

for (count = 0; count < targetNodes.length; count++)
{ 
      alert("id: " + targetNodes[count].id +
            ", name: " + targetNodes[count].name + 
            ", value: " + targetNodes[count].value);
}

これをテストするための JSFiddle は次のとおりです: http://jsfiddle.net/leniel/YwLEu/1/

于 2013-01-06T13:57:15.167 に答える
0

このようにしてください: -

var targetNodes, nodes, count;

targetNodes = [];

nodes = document.getElementsByTagName("input");
for (count = 0; count < nodes.length; count++) {
    node = nodes[count].id.indexOf("survey-answer");
    if (node == 0)
      targetNodes.push(nodes[count]);
}

alert(targetNodes);

ここで、targetNodes 配列には入力オブジェクトが含まれています。

入力タグの値にアクセスしたい場合は、IF条件で次のように設定します

if (node == 0)
  targetNodes.push(nodes[count].value);

LIVE DEMO 1と別のLIVE DEMO 2を参照

于 2013-01-06T13:55:30.110 に答える