1

フォーム内の各リンクに入力タグを自動的に生成し、リンクの .html() を入力 val() にします。取得したいテキストは <strong> タグ内にあるため、.children() 関数を使用します。

問題は、このコードが正しく機能するためにページを更新する必要があることです。ただし、 var htmltoval return 'undefined' は、このループを $(document).ready などの前、後、上に配置しようとしています...

要素が動的に追加されたためだと思います。

コードは次のとおりです。

var content_input = '<input class="btn_menu_search" type="radio"/>';
$('form#form_search a').after(content_input);

$('#form_search :input').each(function () {
    var htmltoval = $(this).prev('a').children().html().toLowerCase();
    console.log(htmltoval) // return undefined on first page load 
    // however return the inner html string as expected
    var htmltoval = htmltoval.split(' ').join('');
    $(this).val(htmltoval);
});  

何か案は?

ここで html を更新します。

<form method="post" action="#" id="form_search">
                    <h4 class="title"><span><strong>Villes</strong></span></h4>

                        <ul class="list-arrow" id="bienes">
                            <li><a class="bienes"><strong>Paris</strong></a></li>
                            <li><a class="bienes"><strong>Londres</strong></a> </li>
                            <li><a class="bienes"><strong>Tokyo</strong></a></li>
                            <li><a class="bienes"><strong>Moscou</strong></a></li>
                            <li><a class="bienes"><strong>Rio de Janeiro</strong></a></li>
                        </ul>

 <!-- etc-->
</form>

編集:キャッシュをクリアした後でも、ページを更新した後、ページは正常に機能します。このバグは、最初のブラウザーのロード時にのみ発生します。

4

1 に答える 1

0

何かが変わるかどうかはわかりませんが、この行にセミコロンを追加し、ループの外側にconsole.log(htmltoval)宣言を入れました。代わりにクラスを使用して、ループ要素も変更しました。htmltovaleach

var content_input = '<input class="btn_menu_search" type="radio"/>';
$('form#form_search a').after(content_input);

var htmltoval = "";
$('.btn_menu_search').each(function () {
    htmltoval = $(this).prev('a').children().html().toLowerCase();
    console.log(htmltoval); // return undefined on first page load 
    // however return the inner html string as expected
    htmltoval = htmltoval.split(' ').join('');
    $(this).val(htmltoval);
});  

jsFiddleを参照してください

于 2013-09-06T15:05:10.817 に答える