我对如何做到这一点很困惑。
我的页面使用PHP从数据库中取出产品代码,并使用它们生成元素的ID。例如:$("#touch-'.$productcode.'")
和$("#popup-'.$productcode.'")
我需要这样做,当点击一个元素时,jQuery会在文档中找到一个元素,其中包含选择器id的最后11个字符以及附加文本。
e.g。选择器$(this)
(其生成的ID为#touch-123-456-789
)将获得自己的ID,删除除最后11个字符(产品代码)之外的所有内容,将popup-
附加到开头,并且然后找到元素$("#popup-123-456-789")
并执行操作。
答案 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');
}
}