2013-07-22 86 views
0

包括兩個ID添加到一個變量,例如結合兩個輸入字段到一個變量

var optionValue=document.getElementById('Input1' + " " + 'Input2'); 

代碼不工作,但沒有任何類似的代碼,將做到這一點?

JS

function addNewListItem(){ 
var htmlSelect=document.getElementById('list'); 
var value1 = document.getElementById('Input1').value; 
var value2 = document.getElementById('Input2').value; 
var optionValue = value1 + " " + value2; 
var optionDisplaytext = value1 + " " + value2; 

var selectBoxOption = document.createElement("option"); 
selectBoxOption.value = optionValue.value; 
selectBoxOption.text = optionDisplaytext.value; 
htmlSelect.add(selectBoxOption, null); 
alert("Option has been added successfully"); 
return true; 

} 

HTML

<table border="0" align="left"> 
<tr> 
<td rowspan="2"> 
    <select name="list" id="list" size="10" style="width:150px"> 
    </select> 
    </td> 
<tr> 
<td align="right">Option Value</td> 
<td align="left"><input name="Input1" type="text" id="Input1" /></td> 
</tr> 
<tr> 
<td align="right">Option Display Text</td> 
<td align="left"><input name="Input2" type="text" id="Input2" /></td> 
</tr> 
<tr> 
<td align="right">&nbsp;</td> 
<td align="left"><input name="btnAddItem" type="button" id="btnAddItem" value="Add Option" onclick="javaScript:addNewListItem();" /></td> 
</tr> 
</table> 

我試過上面的代碼,但它不會添加到列表框? 它只是說在框中未定義

+0

你想獲取DOM元素的引用數組或單個元素的id以某種方式組合了兩個字符串嗎? –

+1

'optionValue'的期望內容是什麼? – Alp

+0

「這段代碼不起作用,但有沒有類似的代碼可以做到這一點?」做什麼?得到一個ID等於另外兩個元素ID連接的元素? :) – speti43

回答

0

繼續評論我離開了,這裏是一個完整的例子。

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function byId(e){return document.getElementById(e);} 
function newEl(tag){return document.createElement(tag);} 
function newTxt(txt){return document.createTextNode(txt);} 
function toggleClass(element, newStr) 
{ 
    index=element.className.indexOf(newStr); 
    if (index == -1) 
     element.className += ' '+newStr; 
    else 
    { 
     if (index != 0) 
      newStr = ' '+newStr; 
     element.className = element.className.replace(newStr, ''); 
    } 
} 
function forEachNode(nodeList, func) 
{ 
    var i, n = nodeList.length; 
    for (i=0; i<n; i++) 
    { 
     func(nodeList[i], i, nodeList); 
    } 
} 

window.addEventListener('load', mInit, false); 

function mInit() 
{ 
    byId('mBtn').addEventListener('click', onBtnClick, false); 
} 

function onBtnClick() 
{ 
    var value1 = document.getElementById('Input1').value; 
    var value2 = document.getElementById('Input2').value; 
    var optionValue = value1 + " " + value2; 

    var newOpt = newEl('option'); 
    newOpt.value = optionValue;   // this line sets the value given to a form by this option 

    newOpt.appendChild(newTxt(optionValue)); // this line adds the text viewable on the page 

    byId('mSelect').appendChild(newOpt); 
} 

</script> 
<style> 
</style> 
</head> 
<body> 
    <label>Input 1: <input id='Input1' value='value1'/></label> 
    <label>Input 2: <input id='Input2' value='value2'/></label> 
    <br> 
    <select id='mSelect'></select><button id='mBtn'>Add to list</button> 
</body> 
</html> 
+0

感謝您的支持!這是我需要開始的:) – user2341069

2

元素是文本輸入?然後somethink像下面將工作:

var value1 = document.getElementById('Input1').value; 
var value2 = document.getElementById('Input2').value; 
var optionValue = value1 + " " + value2; 
+0

嗨,我已經使用了這個,但它沒有出現在列表框中,是否有任何理由呢?謝謝:) – user2341069

+0

@ user2341069 - 你還沒有添加任何文本! I.e <選項值='東西'> _ some_text_here_ - 您可以附加document.createTextNode(「_ some_text_here_」)的結果;在將其添加到列表之前添加到該選項。 – enhzflep

+0

@enhzflep對不起,我不是很瞭解 – user2341069

0

我理解你的問題如下:

  1. 獲取由ID元素的正數。

您可以用下面的塊做到這一點:

HTML

<span id="foo">Foo</span> 
<span id="bar">Bar</span> 
<span id="foo1">Foo</span> 
<span id="bar1">Bar</span> 

JS

var nodes = document.querySelectorAll('#foo, #bar'); 
console.log(nodes); 

然後,您可以得到你從每一個匹配想要的任何數據節點。

相關問題