2016-04-25 24 views
0

我正在構建一個小部件,該小部件將在頁面上雙擊時爲元素生成圖形。如果不重新制作所有小部件,這是我解決問題的唯一方法。使用匹配查找字符串中的ID

我想從元素的html中找到一個控件的ID。

所有部件我想工作是div元素裏面panel_content_id_#

我想找到的代碼

var io_id=32715; 

行發現的數量如何搜索字符串此模式,並得到號碼(32715)。

$('div[id^="panel_content_id_"]').dblclick(function(e){ 
    console.log($(this).attr('id')); 
    var code = $(this).html(); 

    // Find ID 
    var id = -1; 
    var search = code.match("var io_id="); 
    if(search > -1){ 


    } 

    console.log($(this).html()); 

}); 

碼IM尋找的線看起來像這樣

var io_id=xxxxx; 

其中XXXXX =一些隨機數,我不知道

我想找到XXXXX

+0

你想找到什麼? – uzaif

+1

第四行字面上說'我想找到在代碼行var io_id = 32715;' –

+0

找到的數字如果你只是想在String中找到它,然後使用''theString.indexOf(substring)''這樣的模式。 substring是字符串中的id。 –

回答

1

拆分它在兩個部分 - var io_id=之前的所有代碼,另一部分是之後。
然後你知道該行以;結尾,所以從第二部分開始,你就刪除了分號前的內容。
CODE

$('div[id^="panel_content_id_"]').dblclick(function(e){ 
    console.log($(this).attr('id')); 
    var code = $(this).html(); 

    // Find ID 
    var id = -1; 
    if (code.indexOf("var io_id")>-1) { 
     id = parseInt(code.split("var io_id=")[1].split(";")[0]); 
    } 

    if(search > -1){ 
     console.log("The code betrayed me"); 
    } 

    console.log("The id is: " +id); 
}); 
1

也許你可以試試這個正則表達式模式:

\d+(?! var io_id=) 

像這樣來使用:

$('div[id^="panel_content_id_"]').dblclick(function(e) { 
 
    console.log($(this).attr('id')); 
 
    var code = $(this).html(); 
 

 
    // Find ID 
 
    var id = -1; 
 
    var search = code.match("var io_id="); 
 
    
 
    if (search) { // Edited 
 
    // New code 
 
    alert(code.match(/\d+(?! var io_id=)/gim)); 
 
    } 
 

 
    console.log($(this).html()); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="panel_content_id_32715"> 
 
    Div content 
 
    <br><br> 
 
    var io_id=32715; 
 
</div>

相關問題