jquery - 从 parent 属性设置属性

标签 jquery hash parent

我有这个 HTML,我正在尝试将每个内容的 href 从 photo.php 转换为 #photo 等

<ul id="menu">
    <li id="home" class="tab_selected"><a href="home.php">Home</a></li>
    <li id="portfolio"><a href="portfolio.php">Portfolio</a></li>
    <li id="music"><a href="music.php">Music</a></li>
    <li id="video"><a href="video.php">Video</a></li>
    <li id="photo"><a href="photo.php">Photo</a></li>
</ul>

我一直在尝试这样的事情:

$('#menu li a').attr('href', "#"+$(this).parent().attr('id'));

但是 href 总是显示为未定义。

我将哈希存储在 li#id 中,但如果我不能这样做,那就更好了。

谢谢。

最佳答案

$(this) 没有引用您认为它引用的对象。

通过.attr,您可以使用函数作为第二个参数来计算每个匹配元素的新属性值,如下所示:

// i == index, val == value of href at index i
$('#menu li a').attr('href', function(i, val) {
    return '#' + $(this).parent().attr('id');
});

在上面的示例中,this 引用了正确的上下文(当前迭代的 anchor 元素)。

You can try it here.

关于jquery - 从 parent 属性设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106394/

相关文章:

javascript - PHP 和 jQuery AJAX - $_POST 始终为空

javascript - 为什么将 function($) 传递给 jQuery(...) 会使 $(...) 等同于 jQuery(...)?

javascript - 仅选择具有类名称的同级的 div 内的文本,有许多相同类名称的族

java - 使 JDialog 始终位于应用程序之上

jquery - 如何使用 jquery datepicker 在日期中添加一天

javascript - hexo中的 `__()`(双下划线)函数是什么?

php - 希望找到一个可用的 PHP/MySQL 应用程序密码加盐解决方案?

c# - iOS 中没有 bcrypt 实现...可以使用其他语言,创建静态库吗?

c++ - 在结构内部的 TR1 unordered_map 中定义哈希函数

C编程: Parent & Child Process