【问题标题】:Find an element that contains id of selector + text查找包含选择器 id + 文本的元素
【发布时间】:2014-04-28 10:32:45
【问题描述】:

我不知道该怎么做。

我的页面正在使用 PHP 从数据库中提取产品代码,并使用它们为元素生成 ID。例如:$("#touch-'.$productcode.'")$("#popup-'.$productcode.'")

我需要这样做,所以当点击一个元素时,jQuery 会在文档中找到一个元素,该元素包含选择器 id 的最后 11 个字符以及附加文本。

例如选择器 $(this)(生成的 id 为 #touch-123-456-789)将获得自己的 id,删除最后 11 个字符(产品代码)以外的所有内容,将 popup- 附加到开头,然后找到元素 @987654326 @ 并执行操作。

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    这样的事情怎么样..

    <div class='touch' id='touch-123-456-789'> bla bla </div>
    

    在你的 jquery 上

    $('.touch').click(function(){
    var id = $(this).attr('id');
    id = id.substring(5);
    
    $('#popup' + id).doSomething();
    
    });
    

    【讨论】:

      【解决方案2】:

      这是你的 HTML

      <div class="pop-up" value= "123-456-789">one</div>
      <div class="pop-up" value="123-123-123">two</div>
      

      这是你的 jQuery

      $(".pop-up").click(function(){
        var value = $(this).attr("value");
        var yourElement = "popup-"+value;
        $("#"+yourElement).doSomething(function () {
        });
      });
      

      【讨论】:

        【解决方案3】:

        尝试打破你的身份:

         $('.touch').click(function () {
            var id = $(this).attr('id');
            id = id.split(/-(.+)?/)[1];
            $('#popup-' + id).html("Hello changed");
        
         });
        

        这里的 .split() 将在第一次出现“-”时拆分。所以你可以用这个做任何事情。 假设您的 html 代码中有两个元素:

         <div class='touch' id='touch-123-456-789'> Touch me </div>
         <div class="popup" id="popup-123-456-789"></div>
        

        【讨论】:

          【解决方案4】:

          这可能会有所帮助。 http://jsfiddle.net/79yut/

          HTML:

          <div class="element" id="#touch-123-456-790">Sample element1</div>
          <div class="element" id="#touch-123-456-791">Sample element2</div>
          <div class="element" id="#touch-123-456-792">Sample element3</div>
          <div class="element" id="#touch-123-456-793">Sample element4</div>
          <div class="element" id="#touch-123-456-794">Sample element5</div>
          

          JS:

          for (i = 0; i <= $(".element").length; i++) {
              if (i < $(".element").length) {
                  var id = $(".element").eq(i).attr("id");
                  id = "popup-" + id.substring(7);
                  $(".element").eq(i).attr("id", id);
              } else {
                  $("#popup-123-456-792").css('color','blue');
              }
          }
          

          【讨论】:

            猜你喜欢
            • 2011-01-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-05-27
            • 2012-08-22
            • 2017-09-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多