使用 javascript 编辑所有外部链接
如何使用 javascript 浏览 div 中的所有外部链接,添加(或附加)类和替代文本?
我想我需要获取 div 元素内的所有对象,然后检查每个对象是否是 a ,并检查 href 属性是否以 http(s):// 开头(然后应该是外部链接),然后将内容添加到alt 和 class 属性(如果它们不存在,则创建它们;如果存在,则附加所需的值)。
但是,我如何在代码中做到这一点?
How can I go through all external links in a div with javascript, adding (or appending) a class and alt-text?
I guess I need to fetch all objects inside the div element, then check if each object is a , and check if the href attributen starts with http(s):// (should then be an external link), then add content to the alt and class attribute (if they don't exist create them, if they do exists; append the wanted values).
But, how do I do this in code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这个已经过测试:
如果您使用的是共享服务器上的帐户,例如 http://big-server .com/~UserName/,您可能希望对 URL 进行硬编码以超出顶层。 另一方面,如果您想要 http://foo.my-server.com,您可能需要更改 RE 和 http://bar.my-server.com 标记为本地。
[更新] 好评后提高了鲁棒性...
我不强调 FTP 或其他协议,它们可能应该有一个独特的例程。
This one is tested:
If you are on an account on a shared server, like http://big-server.com/~UserName/, you might want to hard-code the URL to go beyond the top level. On the other hand, you might want to alter the RE if you want http://foo.my-server.com and http://bar.my-server.com marked as local.
[UPDATE] Improved robustness after good remarks...
I don't highlight FTP or other protocols, they probably deserve a distinct routine.
我认为这样的事情可能是一个起点:
您还可以循环遍历文档中的所有 A 元素,并检查父元素以查看该 div 是否是您要查找的元素
I think something like this could be a starting point:
you could also loop through all the A elements in the document, and check the parent to see if the div is the one you are looking for
使用 Jquery 可以轻松完成此操作。 您可以将其添加到 onload:
您可以修改它以添加文本。 还可以使用 css 函数修改类。
This can be accomplished pretty easily with Jquery. You would add this to the onload:
You could modify this to add text. Class can also be modified using the css function.
我的(非框架)方法是这样的:
这没有经过测试,但我会像这样开始并从这里调试它。
My (non-framework) approach would be something along the lines of:
This is not tested but I would start like this and debug it from here.