2014-04-28 69 views
1

我很困惑,我應該如何去這樣做的ID的元素。查找包含選擇+文本

我的頁面使用PHP取產品代碼關閉數據庫,並用它們來生成元素的ID。例如:$("#touch-'.$productcode.'")$("#popup-'.$productcode.'")

我需要這樣做,當單擊一個元素時,jQuery將在文檔中找到包含選擇器ID的最後11個字符以及附加文本的元素。

例如選擇器$(this)(其生成的ID爲#touch-123-456-789)將獲得其自己的ID,除去最後11個字符(產品代碼)之外的所有內容,將popup-附加到開頭,然後查找元素$("#popup-123-456-789")並執行操作。

回答

1

怎麼樣一些像這樣的事情..您的jQuery

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

$('.touch').click(function(){ 
var id = $(this).attr('id'); 
id = id.substring(5); 

$('#popup' + id).doSomething(); 

}); 
+0

這個偉大的工程和那麼簡單。非常感謝。 – user3526037

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

嘗試打破你的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> 
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'); 
    } 
} 
相關問題