【问题标题】:Adding jQuery to looped divs将 jQuery 添加到循环 div
【发布时间】:2015-03-04 15:28:53
【问题描述】:

我已经使用 php 从 mySQL 中检索了我的数据。并且将检索到的数据循环通过,以便每个 div 的 id 为“bills”+1 和“bills_info”+1。 我正在尝试将 jquery 添加到这些 div 中,以便在单击之前隐藏一些文本。但是由于 div 是循环遍历的并且具有不同的名称,所以我也想循环遍历 jquery,所以我必须编写与 div 一样多的代码。

这是我的代码:

$i=0;
$j=0;
while($row = $result->fetch_assoc()) {

   // Write the value of the column FirstName and BirthDate
  echo "<div data-role='main' id='bill" .$i++."' class='bills'>" . $row['BName'] . "</div>";

  echo "<div data-role='popup' id='bill_info" .$j++."' class='bill_info'><p>Account number: ". $row['AccNumb'] ."</p>
      <p> Reference Numebr: " . $row['RefNumb'] . "</p>
      <p> Amount: " . $row['Amount'] . "€</p>
      <p> Due date: " . $row['eDate'] . "</p></div>";

  }

jquery:

var i = 0;
var j = 0;

$(function() {

    $( '#bill_info' + j++ ).dialog({
    autoOpen: false
    });

    $("#bills" + i++).click(function() {
       $("#bill_info" + j++).dialog("open");
    });

});

【问题讨论】:

    标签: javascript php jquery loops while-loop


    【解决方案1】:

    对于对话框,您可以使用它们的类作为选择器,插件将为该类的所有元素初始化。

    对于按钮(或任何#billsx),您可以添加带有递增数字的数据属性,也可以使用类添加点击处理程序

    <div data-role='main' data-id='bill_info" .$i++."' class='bills'>
    

    JS

    $('.bill_info').dialog({
       autoOpen: false
    });
    
    $('.bills').click(function(){
         var dialogId = $(this).data('id');
         $('#'+dialogId).dialog('open');
    });
    

    【讨论】:

    • 感谢您的快速回复!我尝试了你的方法,但我仍然无法让弹出窗口工作..
    • 您是否将上面的代码包装在$(function(){ }) 中?是否抛出错误?
    • 哎呀,我的 ID 不匹配,data-id 属性中缺少 bill_info
    【解决方案2】:

    按类而不是 id 定位,并使用next() top 选择正确的bill_info 元素:

    $(function() {
    
        $('.bills').dialog({
        autoOpen: false
        });
    
        $('.bills').click(function() {
           $(this).next().dialog("open");
        });
    
    });
    

    【讨论】:

    • next() 不太可能工作,因为对话框被附加到正文中,从而改变了 DOM 树结构
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    相关资源
    最近更新 更多