【问题标题】:How to click on a <span> using javascript. <span> has no class or id如何使用 javascript 点击 <span>。 <span> 没有类或 id
【发布时间】:2015-12-08 00:20:50
【问题描述】:

我想在页面元素加载时单击 &lt;span&gt;,但我的 span 没有类或 ID。
跨度是

<div class="block-title">
<strong><span>Refine By</span></strong>
</div>

我想要类似的东西

 $('.block-title > span').click(); 

但这会返回错误

类型错误:$(...) 为空

【问题讨论】:

  • 你想给它附加一个点击事件吗?
  • $('.block-title &gt; span').click(function() { });
  • 我想要这样的东西 $('.block-title > span').click();但这会返回错误 TypeError: $(...) is null
  • 你的意思是 $('.block-title span').click();您需要先调整选择器
  • @Erwin 这在控制台 TypeError 中给出错误:$(...) is null

标签: javascript jquery css


【解决方案1】:

如果你想触发元素的点击,你可以这样做:

var span= document.querySelector(".block-title span");
var click= new Event('click');
span.dispatchEvent(click);

Complete Vanilla JS Demo

或者,如果你想要 jQuery(yuck) 版本:

//Creates and dispatches a click event
$('.block-title span').trigger('click');

Complete jQuery Version


旧答案

使用纯javascript,可以将元素的onclick设置为函数:

document.querySelector(".block-title span").onclick = fn;
// or like document.querySelector(".block-title span").onclick = function(){};

或者,如果你想使用事件监听器:

var span = document.querySelector(".block-title span");
span.attachEvent('onclick', fn);
span.addEventListener('click', fn, false);

或者,如果你想使用 jQuery(yuck):

$('.block-title span').click(function() { });

【讨论】:

  • 我想要这样的东西 $('.block-title > span').click();但这会返回错误 TypeError: $(...) is null
  • 那是 jQuery,我的回答只是使用 Vanilla JS
  • 那是空的,你的选择器搞砸了。
  • @SheikhSiddiquee span 不是.block-title 的直系子代
  • @JacobGray Pure JS 赢得胜利,+1 表示讨厌 =]
【解决方案2】:

使用 jQuery API 中的 .trigger(type)

$('.block-title span').trigger('click');

http://api.jquery.com/trigger/

【讨论】:

  • @Simon,我得到 TypeError: $(...) is null in console
  • 可能是因为当时该元素不存在
  • 元素退出 110%。我已经从源代码复制了代码
  • 在控制台输入 $ 看看你得到了什么,然后输入 $('.block-title') 等等...
  • 我正在尝试 document.getElementsByClassName("block-title").click();给我错误 .click();不是函数。有什么想法吗?
【解决方案3】:

如果您收到以下错误,则表示您的 javascript 存在其他问题:

类型错误:$(...) 为空

我建议做一些研究。我把它复制到谷歌并得到:

  1. TypeError: $(...) is null error in firebug but code works on jsFiddle
  2. "TypeError: $(...) is null" What's Going On?
  3. Class exists but jquery errors: TypeError $(...) is null

【讨论】:

    猜你喜欢
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    相关资源
    最近更新 更多