我有一个元素,我有选择器,我想保留它的“.alt”属性并将其添加到数组中。
以前,我一直使用
fakeArray.push(eval($("selector here").alt))
我认为我遇到了 eval 范围为全局的问题,其中出现此错误。
Uncaught ReferenceError: $ is not defined
at eval ...
奇怪的是,我的代码运行良好并且数组可以正常工作,除非我将其设置为正确的函数。例如,这不起作用:
function testFunction (){
// code here
}
如果我只是在函数内部运行代码本身,它就会起作用。
我想知道是否有任何替代 eval 的方法可以在具有选择器属性的本地范围内工作。此外,除了 $("selector here).alt 之外的任何方法来检索 alt 值都会非常有帮助。
我目前正在 Chrome 开发工具中通过控制台运行我的代码,它只能在我正在工作的特定上下文/范围内运行。它不会在“top”中运行。
最佳答案
首先,您不想在此处使用eval
。事实上,很少有情况会再使用eval
。它被认为是危险的,确实不应该再使用。有多种方法可以在不使用 eval
的情况下完成您想要的操作。请参阅the Mozilla documentation .
要获取 alt 属性,应该像执行 $('selector').attr('alt')
一样简单。尽管很高兴看到代码片段或示例来验证这是否是您想要的。
编辑: 正如用户adeneo在问题评论中提到的,您甚至不需要使用jQuery,而是调用document.querySelector('selector').getAttribute('alt ')
.
关于javascript - 不使用 Eval 通过选择器获取元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45385059/