JQuery遍历DOM并提取节点值

JQuery遍历DOM并提取节点值,jquery,dom,jquery-selectors,traversal,Jquery,Dom,Jquery Selectors,Traversal,我有以下DOM: <div class="qtip qtip-light qtip-active"> <div class="qtip-wrapper"> <div class="qtip-borderTop"></div> <div class="qtip-contentWrapper"> <div class="qtip-title"> <di

我有以下DOM:

<div class="qtip qtip-light qtip-active">
   <div class="qtip-wrapper">
      <div class="qtip-borderTop"></div>
      <div class="qtip-contentWrapper">
         <div class="qtip-title">
            <div class="qtip-button"></div>
            **Text I need to extract**
         </div>
         <div class="qtip-content">
            <div class="tooltip">
                <div class="button-container">
                    <script type="text/javascript">
            var link = null;
            var link = $('.qtip-active > .qtip-title').val();
            $('.qtip-active > #button-container').append('<a href=\"mailto:' + link + '\">' + link + '</a>');
                </script>
                </div>
            </div>
         </div>
      </div>
      <div class="qtip-borderBottom"></div>
   </div>
</div>
但是,当我希望变量链接返回指定节点的文本时,它总是未定义的。我已经阅读jquery文档好几个小时了,但我肯定是在逻辑上遗漏了什么,或者是缺少什么

任何帮助…

jQuery的val函数返回表单元素的值,或

您的.qtip标题是一个常规HTML元素,因此您应该调用jQuery函数来获取元素的内容

另外,您使用了错误的选择器。A>B是,并且将匹配直接位于A元素内部的所有B元素

您需要使用写入$'.qtip active.qtip title,以匹配出现在.qtip active中任何位置的所有.qtip title元素

正如ryanulit指出的,您还需要将第二个选择器更改为$'.qtip active.button container'。

jQuery的val函数返回表单元素的值,或

您的.qtip标题是一个常规HTML元素,因此您应该调用jQuery函数来获取元素的内容

另外,您使用了错误的选择器。A>B是,并且将匹配直接位于A元素内部的所有B元素

您需要使用写入$'.qtip active.qtip title,以匹配出现在.qtip active中任何位置的所有.qtip title元素

正如ryanulit指出的,您还需要将第二个选择器更改为$'.qtip active.button container'。

尝试:

var link = $('.qtip-active .qtip-title').text();
qtip title实际上不是qtip active的子级

我想澄清一下:

$("a > b")
是指作为a元素子元素的所有b的集合,而:

$("a b")
指作为a元素的后代的所有b元素的集合

当然,qtip title不是输入元素,所以请使用text而不是val。

尝试:

var link = $('.qtip-active .qtip-title').text();
qtip title实际上不是qtip active的子级

我想澄清一下:

$("a > b")
是指作为a元素子元素的所有b的集合,而:

$("a b")
指作为a元素的后代的所有b元素的集合


当然qtip title不是输入元素,所以使用text而不是val。

我可以踢它吗?是的,你能…我能踢它吗?是的,您还可以,$'.qtip active>按钮容器'.append;需要更改为$'.qtip active.button容器'.append。按钮容器用作类,而不是代码中的id。而且,我建议将javascript作为一个单独的块移动到div之外而不是div内部;需要更改为$'.qtip active.button容器'.append。按钮容器用作类,而不是代码中的id。而且,我建议将javascript作为单独的块移动到div之外,而不是在div内部。