【问题标题】: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');
}
}