jQuery 创建一个带有 href 属性的

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/16102024/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 16:26:34  来源:igfitidea点击:

jQuery create a with href attribute

javascriptjqueryanchorhref

提问by Julian F. Weinert

I just faced a very serious issue with jQuery. I wanted to create an element using jQ. Like the regular way I tried: jQuery('<a href="http://www.google.com"></a>');

我刚刚遇到了一个非常严重的 jQuery 问题。我想使用 jQ 创建一个元素。就像我尝试的常规方式一样:jQuery('<a href="http://www.google.com"></a>');

But this does notwork. So I tried several different element types and attributes. It turned out that I am not able to create elements with HTML containing href="".

但是,这并不能正常工作。所以我尝试了几种不同的元素类型和属性。事实证明,我无法创建包含 .html 的元素href=""

  • jQuery('<a id="id5" name="link"></a>');will work
  • jQuery('<a id="id5" name="link" href=""></a>');will notwork.
  • jQuery('<a id="id5" name="link"></a>');将工作
  • jQuery('<a id="id5" name="link" href=""></a>');无法正常工作。

Is there any know issue or workaround for this problem?? Thanks in advice…

这个问题有任何已知问题或解决方法吗?谢谢指教…

EDIT:

编辑:

To clarify: I don't want to create an element using known attributes. I have a function that returns a ready HTML code. I want to use this code to extract the image tag and then get its attributes. I don't know if the returned HTML will be the same structure. I just know that it contains an image tag. Here is the code I used before:

澄清:我不想使用已知属性创建元素。我有一个返回准备好的 HTML 代码的函数。我想用这段代码来提取图像标签,然后获取它的属性。我不知道返回的 HTML 是否是相同的结构。我只知道它包含一个图像标签。这是我之前使用的代码:

jQuery(html).find('img:first').attr('class').match(/\image-(\d+)\b/)[1]

回答by VisioN

I would use different approach:

我会使用不同的方法:

var newLink = $("<a />", {
    id : "id5",
    name : "link",
    href : "http://www.google.com/",
    text : "some text"
});

回答by Yeronimo

This should work (tested):

这应该有效(经过测试):

var thelink = $('<a>',{
    text: 'linktext',
    title: 'some title',
    href: 'somelink.html'
}).appendTo('body');

回答by som

var a = document.createElement('a');
$(a).attr('href','index.html').attr('id','xyz').addClass('example');

回答by Julian F. Weinert

After some further trial & error it turned out that this is an issue regarding Safari. In Chrome my code works great.

经过一些进一步的反复试验,结果证明这是一个关于 Safari 的问题。在 Chrome 中,我的代码运行良好。

I finally got a fix. I just wrap the HTML string I'm getting back from the function into <div>tags:

我终于得到了修复。我只是将我从函数返回的 HTML 字符串包装到<div>标签中:

html = "<div>" + html + "</div>";