如何从父元素获取ID作为字符串并与另一个字符串进行比较?

时间:2015-10-01 08:59:32

标签: javascript jquery html

我有以下HTML结构:

<div id="blah">
    <ul style="...">
        <li><a href="...">...</a></li>
    </ul>
</div>

我有一个针对所有<a>标记的jQuery选择器。不过,我想检查点击的<a>是否是id="blah"的子项。

这是我到目前为止所做的:

$(document).on('click', 'a', function(t) {
    console.info($(this).text());
    if($(this).parent() == 'blah'){
        console.info('Yes, this link has the parent');
    }
});

但是,if永远不会成为现实,我无法检测链接何时具有指定的父级。我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:8)

使用attr()获取元素属性值

if($(this).parent() == 'blah'){

应该是

if($(this).parent().attr('id') == 'blah'){

$(document).on('click', 'a', function() {
  console.info($(this).text());
  if ($(this).parent().attr('id') == 'blah') {
    console.info('Yes, this link has the parent');
  }

  return false; // To stop page redirection
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="blah">
  <ul style="...">
    <li><a href="...">...</a>
    </li>
  </ul>
</div>

您也可以使用

if($(this).parent().is('#blah'){
  

我想检查点击是否是id =“blah”的子项目。

if ($(this).parent('#blah').length) {

如果你想检查祖先

,这将检查直接父母
if ($(this).closest('#blah').length) {