【问题标题】:Add new class and attributes to div if it exists on the page [duplicate]如果页面上存在,则将新类和属性添加到 div [重复]
【发布时间】:2012-07-23 20:09:55
【问题描述】:

可能重复:
How to add new class and attributes to div if it exists on the page

我需要在我的母版页上尝试查找 div 是否存在的 JavaScript 代码。如果是这样,它应该添加一个新类并添加一个新的 id 属性。 例如,如果页面有这个 div:

<div class="toplink">abc..</div>

那么 JavaScript 代码应该完全像这样:

<div class="toplink adin" data-aid="114">abc..</div>

div 内的代码应该保持不变。

我试过这段代码,但它不起作用

    <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript">
    if ($('.toplink').exists()) {
        $('.toplink').addClass('adin').attr('data-aid', '114');
    }
</script>

这段代码有什么问题?我把这段代码放在什么地方,在页脚的页眉中? 我可以用javascript而不是jquery来做到这一点

【问题讨论】:

  • 这和 C# 有什么关系?

标签: c# javascript jquery


【解决方案1】:

代替

.attr('data-aid','114')

使用.data 方法:

.data('aid','114')

http://api.jquery.com/data

【讨论】:

  • 最后的结果是一样的还是不一样?它更快还是有什么区别? :-)
  • 这取决于您想要 data- 属性的用途。
【解决方案2】:

改用 $().length 属性,并将这个 sn-p 放在页面的最底部,在关闭 body 标记之前

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
    if ($('.toplink').length > 0) {
        $('.toplink').addClass('adin').attr('data-aid', '114');
    }
});
</script>

【讨论】:

  • O AAwesome :) 非常感谢,它现在可以使用此代码
  • 它在 OP 代码中。我正在给出对他有用的答案。
【解决方案3】:

您的代码可能只是在 DOM 准备好之前才运行。包装如下:

$(function() {
    $('.toplink').addClass('adin').attr('data-aid', '114');
});

【讨论】:

  • 另外你不需要检查元素是否存在——如果不存在,选择器不会返回任何项目。
猜你喜欢
  • 2019-08-19
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多