2011-12-19 2 views
1

Я хочу отобразить текстовое поле со знаком% рядом с текстовым полем, но% не появляется, как мне его отобразить?знак процента не отображается

Ниже мой код:

 var $weightText = $("<input type='text' id='txtWeightRow' maxlength='5' onkeypress='return isNumberKey(event)'/>").attr('name',$this.attr('name')) 
       .attr('value',$this.val()) 
+0

Это не то, как вы добавляете элемент в jQuery. Что делает ваш код, это поиск текстового поля (с неправильным селектором) и добавление к нему атрибута имени. – jb11

+0

Я хочу выбрать детали из другого текстового поля в это текстовое поле – BruceyBandit

+0

@ jb11: '$ (some_pile_of_html)' отлично, вы хотите «.append» его (или подобное), чтобы получить его в DOM, но это отдельный пункт. –

ответ

0

Из fine manual:

Если строка передается в качестве параметра $(), JQuery рассматривает строку, чтобы увидеть, если она выглядит как HTML (то есть, он имеет <tag ... > где-то в пределах строки). Если нет, строка интерпретируется как выражение селектора, как описано выше. Но если строка представляет собой фрагмент HTML, jQuery пытается создать новые элементы DOM, как описано в HTML. Затем создается и возвращается объект jQuery, который относится к этим элементам.

Похоже, что jQuery пытается понять, что находится в этой строке, и не совсем верно. Если вы try this (по крайней мере, в браузере WebKit):

console.log($("<input type='text' id='txtWeightRow'>%")); 
console.log($("<input type='text' id='txtWeightRow'>%<br>")); 

Вы увидите, что только <input> выходит в первый, но вы получите все три за секунду. Я бы назвал это ошибкой в ​​jQuery.

Я думаю, что вы должны сделать это в два этапа, чтобы сделать его работу:

var $weightText = $("<input type='text' id='txtWeightRow'/>").attr('name', $this.attr('name')) 
//... 
$(whatever).append($weightText).append('%'); 

где whatever делает, конечно, зависит от того, где вы пытаетесь поставить <input>.

2

Чтобы добавить% рядом с вашим текстовым полем, вы хотите сделать что-то вроде этого:

$('#txtWeightRow').after('%'); 
+0

Я добавил дополнительный бит кода, который я ранее не вставлял в свой вопрос – BruceyBandit

+0

, он возвращается с ошибкой, заявляющей непризнанное выражение '%' – BruceyBandit

1
var $weightText = $("<input type='text' id='txtWeightRow'/>").attr('name',$this.attr('name')); 
$("#txtWeightRow").after('%'); 
+0

. с ошибкой, заявляющей нераспознанное выражение «%» – BruceyBandit

+0

Я добавил дополнительный бит кода, который я ранее не задавал в своем вопросе – BruceyBandit

0

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

var txtValue = $('#wanted-textbox').val(); 
+0

его нормально, я получил его, работая так, как я это сделал, спасибо. :) – BruceyBandit

+0

Я думаю, непонимая ситуацию. 'var $ x = $ (" ")' создает новый узел для '', '$ ('body'). append ($ x)' будет поместите этот узел на страницу и появится ''. –

+0

Теперь я вижу это.Вначале не упоминалось, что сгенерированный узел будет добавлен, чтобы он казался совершенно неправильным – jb11

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