1

<div>次の例では、jQuery を使用して s のリストを反復処理します。

<div id="selectedDefinitionsDiv">
    <div id="selectedDef1" class="myclass">
        <textarea class="textClass" style="margin-left:5px;width:600px;height:80px;">an adoptive country</textarea>
        <input type="button" onclick="removeSelectedDefinition(1)" value="Delete">
    </div>
    <div id="selectedDef2" class="myclass">
        <textarea class="textClass" style="margin-left:5px;width:600px;height:80px;">my adopted state</textarea>
        <input type="button" onclick="removeSelectedDefinition(2)" value="Delete">
    </div>
</div>

各テキストエリアのデータを引き出したい。上記の例では an adoptive country my adopted state

私が試してみました

$(#selectedDefinitionsDiv).children('myclass').each(function(i) { 
    var val = $(this).children('textClass').value;
    processString( val );
});

しかし、それはまったくループには入りません。私のjQueryの何が問題なのですか?

4

5 に答える 5

3

セレクターに引用符がありません

変化する

$(#selectedDefinitionsDiv)

$("#selectedDefinitionsDiv")

また、値をval()に変更し、を追加します。セレクターのクラス名の前

$("#selectedDefinitionsDiv").children('.myclass').each(function(i) { 
    var val = $(this).children('.textClass').val();
    processString( val );
});

>最初のdivの終了について

jsBinでのライブデモ

jsFiddleでのライブデモ

于 2012-09-21T13:07:47.907 に答える
2
  1. 引用符が必要です:$( "#selectedDefinitionsDiv")
  2. 値の代わりに、val()を使用する必要があります
于 2012-09-21T13:08:19.450 に答える
1

少し片付ける必要があるように見えます-myclassプレフィックスを付ける必要が.ありid、引用符で囲む必要があります。

children('.textClass').接頭辞も必要です:

$("#selectedDefinitionsDiv").children(".myclass").each(function(i)
{
   var val = $(this).children('.textClass').val();
   processString( val );
}); 
于 2012-09-21T13:10:00.920 に答える
1

既存のコードでは、構文が不正であるため、おそらく JavaScript エラーが発生するでしょう。これは、コードが実行されていない理由を説明しています。不正な構文は、

$(#selectedDefinitionsDiv)

so のように周囲の引用符がありません$('#selectedDefinitionsDiv')

ただし、構文エラーは修正されますが、セレクターにはさらに問題があります。

2 番目と 3 番目のセレクターの CSS クラス セレクターにchildren('myclass')先頭.children('textClass').ありません。呼び出しているオブジェクトが jQuery オブジェクトであるため、プレーンな JavaScriptの代わりに jQuery を使用する必要があり.myclassます。.textClass.val().value.value

より簡単な解決策は、より具体的なセレクターを提供することです。

$('#selectedDefinitionsDiv .textClass').each(function(i) {  
    var val = $(this).val();
    processString(val);
});​
于 2012-09-21T13:11:23.133 に答える
0

これを試して:

$('textarea').each(function(i) { 
    var val = $(this).val();
    processString( val );
});

お役に立てれば。

于 2012-09-21T13:36:36.477 に答える