2015-01-26 1 views
0

Как получить значение ввода текста внутри элемента <td> (без JQuery)?

Как получить значение ввода текста внутри элемента?

У меня есть несколько идентификаторов, поэтому я назначил их строки сначала в массив;

var itemArray = ["regpay", "overtime","absent","nightdiff","ctpa","salary","hdmf","otallowance","others"]; 

и я инстанцирован использовать их для цикла

for (var i = 0; i < itemArray.length; i++) 
{ 
    var e = $("<td><input type=\"text\" autocomplete=\"off\" name=\""+itemArray[i]+"\" id=\""+itemArray[i]+"\"/></td>"); 
    var mytest =e.find('#'+itemArray[i]).val(); 
    alert(mytest); 
} 

ошибка говорит "$ не определен"; Как я могу получить значение текстовых полей внутри элемента td

?

Я также попытался с помощью:

try 
{ 
    var Row = document.getElementById(itemArray[i]); 
    var Cell = Row.getElementsByTagName("td"); 
    var val = Cell.getElementById(itemArray[i]); 
} 

но Вэл переменная не возвращает ничего, так что я предполагал, что тд в явном виде не принимать значение в текстовое поле внутри него.

+6

Если вы не используете jQuery, почему вы ожидаете, что '' 'будет определен? Это ярлык для 'jQuery' (когда библиотека включена). – royhowie

+0

Да, я как-то понял это сейчас. Однако я не использую JQuery, и я хотел получить значение внутри элемента, не используя его. –

+0

Вы ... хотите узнать, как извлечь текст из заданного элемента ''? Или вы хотите присвоить заданный текст * элементу ''? То, что вы спрашиваете, особенно «без jQuery», не имеет смысла, поскольку вы, по-видимому, пытаетесь использовать jQuery. С чем вы хотите помочь? –

ответ

1

Если у вас уже есть список #ids, то все, что вам нужно сделать, это использовать document.getElementById query selector:

var ids = [ "regpay", "overtime","absent", "nightdiff", "ctpa", "salary", 
 
      "hdmf", "otallowance", "others"]; 
 
var r = []; 
 

 
ids.forEach(function (id) { 
 
    r.push(document.getElementById(id).innerHTML); 
 
}) 
 

 
alert("text found:" + r);
<p id='regpay'>0</p> 
 
<p id='overtime'>1</p> 
 
<p id='absent'>2</p> 
 
<p id='nightdiff'>3</p> 
 
<p id='ctpa'>4</p> 
 
<p id='salary'>5</p> 
 
<p id='hdmf'>6</p> 
 
<p id='otallowance'>7</p> 
 
<p id='others'>8</p>

(я использовал <p> S здесь, так как я не сделал хотите создать целую структуру таблицы, но выше будет также работать с <td>. Если указанные выше идентификаторы относятся к полям ввода, вы должны использовать вместо этого document.getElementById(id).value. На этом фронте был непонятен.)

+0

Спасибо, это сработало очень хорошо. Я должен был переназначить свои идентификаторы вместо текстовых полей. –

0

Для этого вам не нужен jQuery (и поэтому вам не нужен $).

Вы можете сцепить строки без использования JQuery, как это:

"<td><input type=\"text\" autocomplete=\"off\" name=\"" + itemArray[i] + "\" id=\"" + itemArray[i] + "\"/></td>" 

Кроме того, переменная в for заявлении капитализируются (I), в то время как один вы используете позже не является (i) , Убедитесь, что они одинаковые, если вы хотите, чтобы ваш код работал.

Смежные вопросы