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