查找包含选择器+文本ID的元素

时间:2014-04-28 01:45:40

标签: javascript jquery html

我对如何做到这一点很困惑。

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

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

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

4 个答案:

答案 0 :(得分: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();

});

答案 1 :(得分:0)

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

答案 2 :(得分:0)

尝试打破你的身份:

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

 });

这里的.split()会在第一次出现&#34; - &#34;时拆分。所以你可以做任何事情。 让我们假设你的html代码中有两个元素:

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

答案 3 :(得分:0)

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