首页 > 解决方案 > 选择器中的字符串始终为空,尽管不为空 -> 无法识别的表达式/空不是对象

问题描述

我在这里撞墙。我在 javascript 中得到了一个字符串,我只想选择具有相应 id 的 DOM 元素。(在这个例子中,我需要模拟一次点击。但是 hide() 也不起作用......)

options.forEach(function(option) {
    if(option){ //not really necessary
        console.log('#'+option);
        $('#'+option).click();
    }
});

它给了我以下输出: 控制台输出

当然,我也试过javascript方法:

options.forEach(function(option) {
    if(option){ //not really necessary
        console.log('#'+option);
        document.getElementById('#'+option).click();
    }
});

控制台结果是: 控制台输出

这里有什么问题?我似乎无法选择该元素(肯定存在。有人可以帮忙吗?

提前问候和感谢麦克风

标签: javascriptphpjquery

解决方案


我会说问题出在你的数组上。如果没有看到你的数组,我猜你的数组中的一个字符不起作用,因为它是“意外的”。

这是一个工作示例,只是为了向您展示它正在工作

var options = ['29120'];
$('#test').on('click', function() {
  $.each(options, function(i, obj) {
    $('#' + obj).click();
  });
});

$('#29120').click(function() {
  $('div').hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="abc">abc</div>
<div id="cde">cde</div>
<div id="">29120</div>
<button id="29120">hide</button>
<button id="test">Test</button>


推荐阅读