Noob jQuery "$" функция возвращает вопрос - PullRequest
0 голосов
/ 13 июля 2010

HTML:

<input type="text" id="priceperperson1" name="priceperperson1" />
<input type="text" name="personsvalue1" class="countme" readonly="readonly" />

JS:

jQuery(document).ready(function($) {
$('div.pricerow input.countme').each(function(){ 
var id = this.name.substr(this.name.length-1);
alert($('input#priceperperson'+id));
this.value = parseInt($('priceperperson'+id).value) * parseInt($('countpersons'+id).value); 
});
});

Укорочено, насколько это возможно.Все, что я в тревоге, это "Объект" ... Значение NaN.Я пытался "parseInt" по id.Я пробовал:

$('[name=priceperperson'+id+']');
$('priceperperson'+id);

Что я делаю не так?

Ответы [ 7 ]

5 голосов
/ 13 июля 2010

Вы получаете объекты jQuery, когда делаете $(..)

Чтобы получить значение ( строка ), используйте метод .val().

так

alert( $('input#priceperperson'+id).val() );
2 голосов
/ 13 июля 2010

Вы, вероятно, должны поместить $ в определение функции.

Я предполагаю, что это вызывает переопределение переменной $ в функции - и не указывает на jQuery$() функция больше.


Я думаю об этом:

jQuery(document).ready(function($) {

Попробуйте использовать вместо:

jQuery(document).ready(function() {
1 голос
/ 13 июля 2010

Возможно, вы ищете .val () ?

this.val(parseInt($('priceperperson'+id).val()));
1 голос
/ 13 июля 2010

Когда вы просматриваете объекты jquery, я думаю, что вы должны использовать:

$ (это) .attr ( 'имя'); вместо this.name

также, чтобы вызывать значения из объектов, вы должны использовать $ .val () или $ .attr ('attributetename');

// Shortcut for doc ready
$(function() 
{ 
 // Loop through values
 var id = $(this).attr('name');

 alert($('input#priceperperson' + id).val());
});
0 голосов
/ 13 июля 2010

ваш код может содержать ошибки

ваш код id = длина 1 OK, если длина идентификатора> 1 ??возможное исключение

priceperperson1 to priceperperson_1

# option # proposal

<input type="text" id="priceperperson_1" name="priceperperson_1" /> // => use "_"
<input type="text" name="personsvalue_1" class="countme" readonly="readonly" />


jQuery(document).ready(function($) {
    $('div.pricerow input.countme').each(function(){ 
        var id = this.name.split("_")[1]; // => get array value 
        this.value = parseInt($('[name=priceperperson_'+id+']').value()) *parseInt($('[name=countpersons='+id+']').value()); 
    });
});
0 голосов
/ 13 июля 2010

Есть некоторые ошибки ... чтобы получить значение объекта jQuery, вы должны использовать метод .val(), а не .value.

Тогда parseInt () требует в качестве второго параметра radix. Что-то вроде:

...
this.value = parseInt($('priceperperson'+id).val(), 10) * parseInt($('countpersons'+id).val(), 10); 
...
0 голосов
/ 13 июля 2010

Все, что я предупреждал, это "Объект" ... Значение - NaN.Я пытался "parseInt"

Попробуйте дать базу для parseInt:

parseInt(variable, 10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...