1

わかりました、皆さん、私は昨日丸一日グーグルでさまざまな解決策を試してみましたが、何もうまくいきませんでした. 内部にさまざまなものを含む、動的に生成された折りたたみ可能な div があります。私の問題はul、折り畳み式の中にあるテキストで発生しています。私の構造の例は次のとおりです。

<ul id="list-0">
   <li>
     <div id="div-00" class=".item">
       <span id="item-00">Item</span>
       <select id="slide-00" data-role="slider" data-mini="true">
             <option value="on">Need</option>
             <option value="off">Done</option>                       
       </select>
     </div>
   </li>
   <li>
      <div id="div-01" class=".item">
         <span id="item-01">Item</span>
         <select id="slide-01" data-role="slider" data-mini="true">
             <option value="on">Need</option>
             <option value="off">Done</option>                       
         </select>
     </div>
  </li>
</ul>

スパン内のテキストを変更しようとしています。それは単純なことで簡単に行うことができます

  $("#item-00").text("whatevertext"); 

...そしてそれは機能します。しかし、次のスパンのテキストを変更しようとすると、そのテキストは以前にクリックしたスパンに適用されます....なぜそれが起こるのですか?? スパンを「バナナ」に変更した後でid="#item-01"スパンのテキストを「りんご」に変更すると、両方のスパンが「りんご」に変更されます。これは私には意味がありません。私が試したことは何もありません。私のコードがもっと必要な場合は、お知らせください。 id="#item-00"

$(document).on('click', '.item', function () {
     var div = $(this).attr("id"); 
     var split = div.split("-");
...more codings.... involving the opening of a popup to let user type in span text in input of id="thisothername"
     var name = $("#thisothername").attr("value");
     $("#" + "item" + "-" + split[1]).text(name);
});

現在、これを使用して入力からテキストを取得し、選択した li > div > span に適用しています .... split[1] は、親 div id 別名 00 または 01 の解析された数値を含む配列インデックスです。次に、子スパンのIDを呼び出すために使用され、理論的にはそのIDのテキストのみを変更します。

4

2 に答える 2

1

次のように試すことができます。

$(document).on('click', '.item', function () {

  // .. some other stuff ...

  $(this)
    .find('span')
    .first()
    .text($("#thisothername").attr("value"));
});
于 2013-03-10T18:11:01.530 に答える
0

.クラス名はマークアップに を必要としません

 <div id="div-00" class="item">

そして今、これはうまくいくはずです

$(document).on('click', '.item', function () {
     var div = $(this).attr("id"); 
     var split = div.split("-");    
     //var name = $("#thisothername").attr("value"); //dont know what does it do
     $("#" + "item" + "-" + split[1]).text("some name");
});

または、ID分割でそれを行うことができます

$(document).on('click', '.item', function () {
         //var div = $(this).attr("id"); 
         //var split = div.split("-");    
         //var name = $("#thisothername").attr("value"); //dont know what does it do
         $("span",this).text("some name");
    });

http://jsfiddle.net/utFmc/1/

于 2013-03-10T18:08:48.160 に答える