【问题标题】:How change content on click some item from list?单击列表中的某些项目时如何更改内容?
【发布时间】:2019-08-19 10:59:20
【问题描述】:

对不起,我的英语不好。我有问题。

我有按钮和跨度列表的构造。然后我需要点击列表项(一些跨度),我的按钮文本在文本可点击跨度上更改。

如果我点击第一个跨度,那么我的按钮会更改“Text”或第二个跨度“Text2”上的文本。

<button class="switcher collapsible">X1</button>
<div class="collapsibleContent">                                         
  <span class="choise__block-item">Text</span>                                       
  <span class="choise__block-item">Text2</span>
</div>

我的页面上有很多这样的结构。我如何为 id 连接这个?然后,如果我单击具有相同类的跨度,这是更改我所有的按钮文本吗?

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    使用 div classspan 更改按钮的文本,如下所示。在多人情况下parent()prev() 是你的朋友。

    $('.collapsibleContent').find('span').click(function(e) {
      let txt = $(this).text();
      $(this).parent().prev('.switcher').text(txt);
    });
    span {
      color: red;
      text-decoration: underline;
      font-weight: bold;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <button class="switcher collapsible">X1</button>
    <div class="collapsibleContent">
      <span class="choise__block-item">Text</span>
      <span class="choise__block-item">Text2</span>
    </div>
    <button class="switcher collapsible">X2</button>
    <div class="collapsibleContent">
      <span class="choise__block-item">Text3</span>
      <span class="choise__block-item">Text4</span>
    </div>

    【讨论】:

    • 感谢您的快速反馈!喜欢这个解决方案,但我的页面上有 8 个这样的结构,这对其他人有用吗?
    • 你能发布相关的HTML吗?如果没有任何特定情况,它的工作。
    • ba2048be.ngrok.io 我不能在 div 上包含这个块。这是我的服务器 url,我想你可以找到这个元素的部分?
    • 我爱你!谢谢!
    【解决方案2】:

    choise__block-item 类添加点击事件(choise__block-item 类的所有跨度),使用text()set 获取点击的span 的文本到按钮。

    $('span.choise__block-item').click(function () {
        $('.switcher').text($(this).text())
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    
    <button class="switcher collapsible">X1</button>
    <div class="collapsibleContent">
        <span class="choise__block-item">Text</span>
        <span class="choise__block-item">Text2</span>
    </div>

    也可以看到.html()的引用。

    【讨论】:

    • 感谢您的快速反馈!喜欢这个解决方案,但我的页面上有 8 个这样的结构,这对其他人有用吗?
    • *construction ba2048be.ngrok.io - 这是我的服务器 url,我想你可以找到这个元素的部分吗?
    【解决方案3】:

    您可以在 jquery 中使用text() 获取列表文本,希望对您有所帮助

    $('.choise__block-item').click(function(e){
        $('.switcher').text($(this).text())
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <button class="switcher collapsible">X1</button>
    <div class="collapsibleContent">                                         
      <span class="choise__block-item">Text</span>                                       
      <span class="choise__block-item">Text2</span>
    </div>

    【讨论】:

    • 感谢您的快速反馈!喜欢这个解决方案,但我的页面上有 8 个这样的结构,这对其他人有用吗?
    【解决方案4】:

    据我了解,您的要求是在单击 span 时更改按钮的文本。

    看看下面的代码

    $('.collapsibleContent > span').click(function(){
      var clickedTxt = $(this).text();
      $(this).parents('.box').find('.switcher').text(clickedTxt);
    });
    .box{ width:300px; float:left; border:1px solid #ff0000; margin:5px;}
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="box">
    <button class="switcher collapsible">button1</button>
    <div class="collapsibleContent">                                         
      <span class="choise__block-item">Text</span>                                       
      <span class="choise__block-item">Text2</span>
    </div>
    </div>
    
    <div class="box">
    <button class="switcher collapsible">button2</button>
    <div class="collapsibleContent">                                         
      <span class="choise__block-item">Text3</span>                                       
      <span class="choise__block-item">Text4</span>
      <span class="choise__block-item">Text5</span>
    </div>
    </div>
    
    
    <div class="box">
    <button class="switcher collapsible">button3</button>
    <div class="collapsibleContent">                                         
      <span class="choise__block-item">Text6</span>                                       
      <span class="choise__block-item">Text7</span>
      <span class="choise__block-item">Text8</span>
    </div>
    </div>
    
    
    <div class="box">
    <button class="switcher collapsible">X1</button>
    <div class="collapsibleContent">                                         
      <span class="choise__block-item">Text</span>                                       
      <span class="choise__block-item">Text2</span>
    </div>
    </div>

    【讨论】:

    • 感谢您的快速反馈!喜欢这个解决方案,但我的页面上有 8 个这样的结构,这对其他人有用吗?
    • 这对所有人都有效,因为代码不特定于任何 id 或类。无论是 2 跨度还是 50。
    • 抱歉没有工作,这是更改我所有的按钮文本。我想我的所有按钮都需要特定的 ID。
    • 请在sn-p中分享您的代码,以便我了解您的需求并解决它们
    • @SlavaCore :: 看看更新的代码,我想它会帮助你
    猜你喜欢
    • 2023-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多