function scriptEval()-6ren">
gpt4 book ai didi

javascript - 我想创建一个包含脚本的 html 属性,但我无法管理 "this"进入我的脚本

转载 作者:行者123 更新时间:2023-12-02 23:36:43 26 4
gpt4 key购买 nike

“this”的范围有问题
我想创建一个包含脚本的 html 属性,但我无法管理“this”进入我的脚本。

提前谢谢您!

<!-- html -->
<div script="console.log( 2 + 2 + ' -> ' + this)">
<!-- some html -->
</div>

<script>
function scriptEval() {
var script_elements = [];

document.querySelectorAll("*").forEach(attr => {
if ("script" in attr.attributes) {
script_elements.push(attr);
}
});
script_elements.forEach(element => {
var val = element.attributes.script.value;
element.removeAttribute("script");
val = eval(val);
});

}
scriptEval();

// output
// 4 _ undefined

// I need
// 4 _ <div> ... </div> or whatever the this value is

</script>

最佳答案

我明白了。抱歉打扰。
这会有很大用处!

Pay attention in to the html script attribute.

答案:

<!-- html -->
<div script="(e)=>{console.log(2 + 2 + ' -> ' + e)}">
<p script="(e)=>{e.style.color = 'red'}">Some text that is not red</p>
<div script="(e)=>{ [custume for loop iterator after fetch() applied on this div] }"></div>

</div>

<script>

function scriptEval() {
document.querySelectorAll("*[script]").forEach(element => {
var val = element.attributes.script.value;
element.removeAttribute("script");
val = eval(val);
return val(element);
});
}
scriptEval();

// the output now
// 4 _ [object HTMLDivElement]

</script>

关于javascript - 我想创建一个包含脚本的 html 属性,但我无法管理 "this"进入我的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56263716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com