javascript - 如何在 JQuery 中重复相同的代码,并为每个代码附加不同的编号?

标签 javascript php jquery codeigniter

我在定位由 PHP 代码动态创建的元素时遇到问题。我想做的是toggle() 元素。这是数据库中最新职位空缺的新闻源。

我让它工作了,但是通过手动编写一段 jquery 代码来定位元素,效率确实很低,如下所示:

  $('#clickMe1').click(function(event){
    event.preventDefault();
    $('#targetCollapse1').toggle();
    if ($('#targetCollapse1').is(":visible"))
    {
      $('#change-icon1').removeClass('fa-plus').addClass('fa-minus');
    }
    else
    {
      $('#change-icon1').addClass('fa-plus').removeClass('fa-minus');
    }
  });
  $('#clickMe2').click(function(event){
    event.preventDefault();
    $('#targetCollapse2').toggle();
    if ($('#targetCollapse2').is(":visible"))
    {
      $('#change-icon2').removeClass('fa-plus').addClass('fa-minus');
    }
    else
    {
      $('#change-icon2').addClass('fa-plus').removeClass('fa-minus');
    }
  });

如何仅制作一段此代码并申请 1-5 的数字。我尝试在 for 循环中进行创建,但仍然没有成功?

这是 html/php 代码,可以查看那里发生了什么。顺便说一句,我正在使用 CodeIgniter 和解析类,因此 {vacancies} {/vacancies} 是一个 for 循环

<ul class="vacancies">
  {vacancies}
    <a href="#" id="clickMe{num}">
    <li>
      <i class="fa fa-plus" id="change-icon{num}"></i><i class="fa fa-code"></i><span class="job-title">{job_title}</span>
      <span class="job-pubdate">{pubdate}</span>
      <div class="description" id="targetCollapse{num}">{job_descr}</div>
    </li>
    </a>
  {/vacancies}
</ul>

最佳答案

试试这个:

 $('[id^=clickMe]').click(function(event){
    event.preventDefault();
    var number=$(this).attr('id').substr($(this).attr('id').length-1); //get the number at the end of the id
    $('#targetCollapse'+number).toggle();
    if ($('#targetCollapse'+number).is(":visible"))
    {
      $('#change-icon'+number).removeClass('fa-plus').addClass('fa-minus');
    }
    else
    {
      $('#change-icon'+number).addClass('fa-plus').removeClass('fa-minus');
    }
  });

更新:

这一行 var number=$(this).attr('id').substr($(this).attr('id').length-1); 正如我所说的被点击元素的 id 属性,然后获取它的最后一个字符(使用 substr() )并将其存储在名为 number

的变量中

关于javascript - 如何在 JQuery 中重复相同的代码,并为每个代码附加不同的编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26194516/

相关文章:

javascript - 使用局部变量(而不是重复的属性访问)是否会损害性能?

javascript - 如何隐藏 Angular 管理 View

php - 在嵌套 foreach 循环内使用 MySQL 查询的缓慢 Excel 报告 [Laravel 5.3]

php - 正则表达式从第一个大写匹配到查询字符串的句子结尾

javascript - jQuery 从回调函数内部调用插件方法

javascript - 是否可以创建自定义 CSS 伪类?

javascript - 在 Backbone.js 中加载初始数据的最佳方法是什么?

javascript - jQuery 将 JSON 数据附加到表中总是将元素放在错误的位置

php - 在 MYSQL 中添加两行的值并将它们组合成一行

javascript - 如何使用 jQuery click 方法显示隐藏的元素?