javascript - 不使用 Eval 通过选择器获取元素属性

标签 javascript jquery

我有一个元素,我有选择器,我想保留它的“.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/

相关文章:

javascript - 我在 webpack.DefinePlugin 中定义的变量未定义

javascript - ForbiddenError : invalid csrf token, express js

javascript - Node : get filename of caller function

javascript - 图表未显示在 D3 中

javascript - 在带有图像的类别中淡入淡出

javascript - 在 Node js 中将文本转换为哈希值

javascript - 删除空格但在文本区域中保留换行符 JS 或 jQuery

jquery <比和>比.width

javascript - 未捕获的语法错误 : Unexpected token : AJAX

jquery - 为什么 jQuery 单击包含在单独的文件中时不起作用