通过在当前元素中获取短代码来运行函数
Run function in current element by get short code inside
而不是添加一个 ID (IdAddMore) 来运行 ID(widget1) 中的脚本,如下所示:
<div class="widget" id="widget1">
<div class="content">
<div id="IdAddMore"></div>
<script type='text/javascript'>
$("#IdAddMore").selectme({
Numpost:3,
Postyle : "Enter your style",
});
</script>
</div>
</div>
(当我添加更多新小部件时,小部件会自动添加,这意味着我可以拥有小部件3,小部件10,....索引(3,10..) 是任意的,不排序。
Widget 是一个 HTML/JS widget。
我想通过短代码运行selectme
,而不是在每个小部件中重复脚本。
<div class="widget" id="widget1">
<div class="content">
[3][mystyle]
</div>
</div>
<div class="widget" id="widget50">
<div class="content">
[4][yourstyle]
</div>
</div>
...........
如何只编写脚本来捕获当前元素中的短代码:
我在下面写脚本,但它不起作用。替我检查,谢谢你的帮助。
<script type='text/javascript'>
var getdata = document.getElementsByClassName(".content").innerText || document.getElementById(".content").textContent;
var thevalue = [];
getdata.replace(/'[(.*?)']/g, function(g0,g1){thevalue.push(g1);});
$(".widget").selectme({
Numpost:thevalue[0],
Postyle: ""+thevalue[1]+"",
});
</script>
您的代码存在几个问题:
document.getElementsByClassName(".content").innerText
。将不起作用,因为getElementsByClassName()
返回一个列表,并且该列表没有.innerText
属性。您需要遍历每个项目。
document.getElementById(".content")
。不起作用,因为您传递的是类选择器而不是普通 ID。
既然你使用的是jQuery,那就试试这样的事情吧:
$(".content").each(function() {
var content = $(this).text(),
values = content.match(/'[(.*?)']'[(.*?)']/);
$(this).closest(".widget").selectme({
Numpost:values[1],
Postyle: values[2],
});
});
话虽如此,在我看来,如果您使用 html5 data-
属性,从脚本中检索标记中的值会更整洁、更容易,也许是这样的:
<div class="widget" data-numpost="3" data-style="Enter your style">
。因为所需的jQuery是微不足道的:
$(".widget").each(function() {
var $this = $(this);
$this.selectme({
Numpost : $this.attr("data-numpost"),
Postyle : $this.attr("data-style")
});
});
如果这还不够简写,你可以说:
<div class="widget" data-sm="[3][Enter your style]">
。并修改 JS 以适应。
相关文章:
- 如果此代码运行,请执行代码
- JavaScript游戏引擎——编辑器中的代码运行:)检查器中的错误
- JavaScript中的逗号运算符:应为语法错误,但代码运行正常
- 代码运行时出现问题
- Socket.IO:重新连接导致服务器连接代码运行两次
- 代码运行时的类型检查
- 将页面控件添加到数据表,但当代码运行时,页面中不显示任何内容
- if 语句中的一部分 JavaScript 代码运行,而同一块中的其余代码不执行.我在这里错过了什么
- JS代码运行非常慢
- 阻止其他代码运行,直到 AJAX 请求返回某些内容
- JS代码运行到无限循环
- Javascript游戏代码运行非常慢
- chrome扩展///我的代码运行了不止一次
- 我的代码运行在jsfiddle上,但为什么不能't在本地计算机上
- Javascript parseInt-代码运行4次
- 如何从Visual Studio代码运行我的电子项目
- 检查显示:CANNON不是使用CANNON.js+Webstorm 8.0.1定义的(但代码运行良好)
- 为什么slice()显示错误,但代码运行良好
- 代码运行后字符串发生更改
- JQuery函数代码运行不正常