javascript - 使用 THIS 选择当前元素的特定子元素

标签 javascript jquery this dom-events

我想知道如何选择 <span ="data">来自以下内容。

<div class="feeds" onmouseover="...">
    <div id="someDiv"></div>
    <div class="moredivs"></div>
    <span ="data">data in here...</span>
</div>

我想使用类似的东西:onmouseover="select(this)"然后能够根据该事件访问该跨度,因为我有可能 <div class="feeds">元素。

甚至欢迎 JQuery 建议。

最佳答案

您提供的 HTML 无效。定义属性时,您必须给它们命名。假设您有这个:

 <span class="data">data in here...</span>

使用 jQuery,您无需内联事件处理程序即可轻松完成此操作。在你的 $(document).ready() 你可以放:

$('.feeds').mouseover(function () {
    var $span=$('span.data', this);
});

$span 将保留对您的 span(在 jQuery 集合中)的访问权。

jsFiddle Demo - jQuery version


如果您需要一个仅使用 Javascript 的解决方案(使用您的内联事件处理程序:onmouseover="select(this)"),您将采用如下方式:

function select(me) {
    var span=me.getElementsByClassName('data')[0];
}

getElementsByClassName() 仅适用于现代浏览器,但您可以使用 fallback对于古老的 IE 也是如此。

jsFiddle Demo - Plain Javascript / Inline handler


注意:如果您有多个 .feeds,请考虑为 someDiv 使用类而不是 id,因为 id只能在 HTML 文档中出现一次。

关于javascript - 使用 THIS 选择当前元素的特定子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6289036/

相关文章:

javascript - 引导标签输入 : Can't add objects when itemValue option is not set

java - Java “this”-在Eclipse内容帮助中标记为静态的关键字

javascript - 带有 $(this) 的全局变量

javascript - 全日历: 'eventAfterRender' 工作不正常

javascript - JavaScript 中的增强类型

jquery - 如何从代码隐藏的页面方法更新 GridView?

嵌套函数中的 Javascript "this"指针

javascript - 如何在纯 JavaScript 和 AJAX 上访问本地 json 文件并加载包含内容的菜单?

javascript - 单击事件更改 Css

javascript - 如何在图像 map 上创建一个 html 工具提示?