javascript jquery抓取嵌套属性

时间:2009-07-20 09:22:37

标签: javascript jquery xhtml

这是我需要的一种随意的东西。基本上我的设置是这样的:

<div class="classname">
  <h3>
     <a class="anchor_classname" title="some_title">..</a>
  </h3>
</div>

上述html段在页面上重复所有现有记录。

我需要做的是:使用Jquery,我想从嵌套锚点(即“some_title”)中获取工具提示文本,并将此文本设置为包含div的'title'属性。我需要为每个标题文本都是唯一的所有记录执行此操作。这可能与我已经显示的设置有关,还是我需要一些唯一的标识符来区分记录?有人可以用jquery描述如何实现这一目标吗?感谢。

更新:使用David的建议我设法使用他的代码并稍微改变它如下:

    $('a.anchor_classname').each(function () {
      var title = $(this).attr("title"); //line 1
      var div = this.parentNode.parentNode; //line 2
      div.title = title; //line 3
    })

如何将第2行和第3行转换为严格使用jquery函数,如parent()和attr()。 (它按原样工作,但我认为使用标准jquery函数进行合规会更好一些。)

1 个答案:

答案 0 :(得分:2)

以这种方式复制信息会让我觉得可能对可访问性有害(或者至少会刺激屏幕阅读器用户),并通过设置链接样式来填充h3h3填写div

那就是说,这个未经测试的代码可能会完成这项工作:

jQuery('div.classname > h3 > a.anchor_classname').each(function () {
  var title = this.title;
  var div = this.parentNode.parentNode;
  div.title = title;
})

或者更慢,效率更低的jQuery-where-native-DOM-would-do方法:

jQuery('div.classname > h3 > a.anchor_classname').each(function () {
  var jq = jQuery(this);
  var title = jq.attr('title');
  var div = jq.parent().parent();
  div.attr('title', title);
})