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"); 

......它的工作原理。但是,当我尝试更改任何后续跨度的文本时,该文本将应用于任何先前单击的跨度......为什么会发生这种情况?就像我在已经将跨度更改为"bananas"id="#item-01"之后将跨度的文本更改为"apples" ,两个跨度都将更改为"apples"。这对我来说毫无意义,而且我尝试过的任何方法都没有奏效。如果您需要更多我的代码,请告诉我。 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 aka 00 或 01 的解析数值然后用于调用子跨度的 id,理论上只更改该 id 的文本 aha。

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 回答