查找一个包含选择器id+文本的元素

Find an element that contains id of selector + text

本文关键字:id+ 选择器 文本 元素 包含 一个 查找      更新时间:2023-09-26

我不知道该怎么做。

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

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

例如,选择器$(this)(其具有生成的id #touch-123-456-789)将获得其自己的id,移除除最后11个字符(产品代码)之外的所有字符,将popup-附加到开头,然后找到元素$("#popup-123-456-789")并执行动作。

这样的东西怎么样。。

<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();
});

这是您的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 () {
  });
});

试着打破你的id,比如:

 $('.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>

这可能会有所帮助。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');
    }
}