").attr('name',$this.attr('name')) "> ").attr('name',$this.attr('name')) "> ").attr('name',$this.attr('name')) " />

パーセント記号は表示されません

私は、テキストボックスの隣に%記号付きのテキストボックスを表示したいが、%は表示されないが、どのように表示させるのか?

以下は私のコードです:

     var $weightText = $("<input type='text' id='txtWeightRow' maxlength='5' onkeypress='return isNumberKey(event)'/>").attr('name',$this.attr('name'))
                 .attr('value',$this.val())
1
私はこのテキストボックスに別のテキストボックスから詳細を選択したい
追加された 著者 BruceyBandit,
私は追加がある、それはちょうどこのコードではない:)私の質問で
追加された 著者 BruceyBandit,
@ jb11: $(some_pile_of_html)は大丈夫です。DOMに追加するには、それを。append したいのですが、それは別の問題です。
追加された 著者 mu is too short,
@ jb11:一部のDOMノードを選択するのではなく作成するため、OPはIDセレクタを使用していません。これを見てください: jsfiddle.net/u3ZUF
追加された 著者 mu is too short,
これはjQueryに要素を追加する方法ではありません。あなたのコードが行っているのは、テキストボックス(セレクタが間違っている)を探して、それに名前属性を追加することです。
追加された 著者 jb11,
決してそれを知らなかった。 IDセレクタを使用しない理由はわかりません
追加された 著者 jb11,
基本的に要素を複製するのであれば、.clone()を使わないのはなぜですか?
追加された 著者 jb11,

4 答え

テキストボックスの隣に%を追加するには、次のようにします。

$('#txtWeightRow').after('%');
2
追加された
以前私の質問に入れなかった余分なコードを追加しました
追加された 著者 BruceyBandit,
認識できない式 '%'が返されるエラーが返されます。
追加された 著者 BruceyBandit,
 var $weightText = $("<input type='text' id='txtWeightRow'/>").attr('name',$this.attr('name'));
 $("#txtWeightRow").after('%');
1
追加された
認識できない式 '%'が返されるエラーが返されます。
追加された 著者 BruceyBandit,
以前私の質問に入れなかった余分なコードを追加しました
追加された 著者 BruceyBandit,

詳しい説明書から:

If a string is passed as the parameter to $(), jQuery examines the string to see if it looks like HTML (i.e., it has somewhere within the string). If not, the string is interpreted as a selector expression, as explained above. But if the string appears to be an HTML snippet, jQuery attempts to create new DOM elements as described by the HTML. Then a jQuery object is created and returned that refers to these elements.

jQueryがその文字列に含まれるものを見つけようとしているのではないかと思います。 試してみてください(少なくともウェブキットブラウザでは):

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

あなたは <input> だけが最初のものに出てくるのを見るでしょうが、2回目は3つすべてを取得します。私はそれをjQueryのバグと呼んでいます。

私はあなたがそれを動作させるために2つのステップでそれをしなければならないと思う:

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

どこに を置いているかによって、 whatever はもちろんあります。

0
追加された

別のテキストボックスの値を選択する場合は、次のようにします。

var txtValue = $('#wanted-textbox').val();
0
追加された
そのok私はそれをやっている方法を働いている、ありがとうtho :)
追加された 著者 BruceyBandit,
私はあなたがその状況を誤解していると思います。 <input> の新しいノードを作成します。 var $ x = $( "<input type = 'text' id = 'txtWeightRow' /> $( 'body')。append($ x)はそのノードをページに置き、 <input> が表示されます。
追加された 著者 mu is too short,
今私はそれを見る。当初は、生成されたノードが追加されて完全に間違っているとは言いませんでした
追加された 著者 jb11,