我正在构建一个小部件,当它在页面上双击时会生成元素的图形。如果不重新制作所有小部件,这是我解决问题的唯一方法。
我想从元素的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());
});
我正在寻找的代码行将如此
var io_id=xxxxx;
其中xxxxx =某个随机数我不知道
我想找到xxxxx
答案 0 :(得分: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>
答案 1 :(得分:1)
将其拆分为两部分 - 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;
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);
});