Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript、jQuery——我做错了什么?_Javascript_Jquery - Fatal编程技术网

Javascript、jQuery——我做错了什么?

Javascript、jQuery——我做错了什么?,javascript,jquery,Javascript,Jquery,这是我目前拥有的jQuery代码,我想将所有链接的href更改为与标题相同,然后再将其嵌入页面中。然而,随着代码中将href更改为title位,它将停止工作。我是Javascript新手,所以我肯定做错了什么,只是还不确定是什么!非常感谢任何帮助 谢谢你们 编辑 这是我要更改的html: $(document).ready(function () { $("href").attr('href', 'title'); }); $('a[href$=.jpg]').each(functio

这是我目前拥有的jQuery代码,我想将所有链接的href更改为与标题相同,然后再将其嵌入页面中。然而,随着代码中将href更改为title位,它将停止工作。我是Javascript新手,所以我肯定做错了什么,只是还不确定是什么!非常感谢任何帮助

谢谢你们

编辑

这是我要更改的html:

$(document).ready(function () {
    $("href").attr('href', 'title');
});

$('a[href$=.jpg]').each(function () {
    var imageSrc = $(this).attr('href');
    var img = $('<img />').attr('src', imageSrc).css('max-width', '300px').css('max-height', '200px').css('marginBottom', '10px').css('marginTop', '10px').attr('rel', 'lightbox');
    $(this).replaceWith(img);
});
});
尝试:

尝试:


您更改错误,您试图选择href元素而不是a

此修复程序应该可以:

$("a").each(function () {
    var $this = $(this);
    $this.attr('href', $this.attr('title'));
});

它将选择所有具有标题的元素,并使用此值设置href。

如果更改错误,则尝试选择href元素而不是a

此修复程序应该可以:

$("a").each(function () {
    var $this = $(this);
    $this.attr('href', $this.attr('title'));
});
它将选择所有具有标题的元素,并使用此值设置href。

此行:

$("a[title]").each(function() {
    $(this).attr('href',$(this).attr('title'));
});
正在查找所有href元素并将其href attr替换为字符串“title”。由于没有href元素,请尝试以下操作:

$("href").attr('href','title');
这一行:

$("a[title]").each(function() {
    $(this).attr('href',$(this).attr('title'));
});
正在查找所有href元素并将其href attr替换为字符串“title”。由于没有href元素,请尝试以下操作:

$("href").attr('href','title');

这里有一个更有效的方法

因为你只是在换新的

将接受返回值为的新值(在本例中为href)的函数

所以整个事情可能是这样的:

$(document).ready(function() {
    $("a[title$=.jpg],[title$=.jpeg]").replaceWith(function() {
            return $('<img />', {src:this.title, rel:'lightbox'})
                    .css({maxWidth: 300,maxHeight: 200,marginBottom: 10,marginTop: 10});
    });
});​
例如:


这里有一个更有效的方法

因为你只是在换新的

将接受返回值为的新值(在本例中为href)的函数

所以整个事情可能是这样的:

$(document).ready(function() {
    $("a[title$=.jpg],[title$=.jpeg]").replaceWith(function() {
            return $('<img />', {src:this.title, rel:'lightbox'})
                    .css({maxWidth: 300,maxHeight: 200,marginBottom: 10,marginTop: 10});
    });
});​
例如:

看看这个:似乎你想做什么就做什么。 注意:$document.ready是因为JSFIDLE而被注释的,实际上您的代码中需要它。

检查这个:似乎做了您想做的事情。

注意:$document.ready是因为JSFIDLE而被注释的,您实际上需要在代码中使用它。

Oooh,这使得嵌入部分能够工作,但是链接'href'仍然没有被更改为标题?第一行是$'a'而不是$'href'。选择器用于标记,而href只是一个属性。已将其替换为,但仍然只执行嵌入部分?如果您给我一些HTML,我们可以在JSFIDLE上调试它。实际上,您可能需要的比我给您的更多。在一个测试现场,我正试图让它工作。非常感谢。哦,这让嵌入部分开始工作,但是链接'href'仍然没有被更改为标题?第一行是$'a'而不是$'href'。选择器用于标记,而href只是一个属性。已将其替换为,但仍然只执行嵌入部分?如果您给我一些HTML,我们可以在JSFIDLE上调试它。实际上,您可能需要的比我给您的更多。在一个测试现场,我正试图让它工作。非常感谢你们。你们能发一点HTML吗?这会有很大帮助的。谢谢大家!非常感谢你们能发一点HTML吗?这会有很大帮助的。谢谢大家!非常感谢与其他版本一样,嵌入版本可以工作,但标题不会更改:@James-在HTML中,图像以.jpeg而不是.jpg结尾。看看这个例子,它使用了我最近的更新:@James-更新了这个答案。这样做更简洁、更高效。还包括.jpg和.jpeg HREF。看一看,如果有问题请告诉我oThis实际上效果更好,谢谢Patrick。意味着它实际上只改变了我想要的链接。谢谢大家!与其他版本一样,嵌入版本可以工作,但标题不会更改:@James-在HTML中,图像以.jpeg而不是.jpg结尾。看看这个例子,它使用了我最近的更新:@James-更新了这个答案。这样做更简洁、更高效。还包括.jpg和.jpeg HREF。看一看,如果有问题请告诉我oThis实际上效果更好,谢谢Patrick。意味着它实际上只改变了我想要的链接。谢谢大家@Tudorizer:您可以通过将“Choose Framework”中的第一个下拉框值设置为“No wrap”来告诉JSFIDLE不要包装代码。您不需要$'body.appendimg;。如果a没有标题,它将破坏href。这似乎可行,但当我查看源代码时,它实际上没有在源代码中更改,这似乎意味着javascript不会嵌入它,因为它不会以.jpg结尾?当我点击它时,它直接进入图像,但在源代码中没有改变?再次感谢都铎瑞泽!我已经在上为后代编辑了JSFIDLE上的代码。除非您在HTML选项卡中从Firebug查看,否则源代码不会更改。@Tudorizer:您可以通过将“选择框架”中的第一个下拉框值设置为“不换行”来告诉JSFIDLE不要换行代码。您不需要$'body'。appendimg;。如果a没有标题,它将破坏href。这似乎是可行的,但当我查看源代码时,它实际上没有在源代码中更改,这似乎意味着j
avascript不会嵌入它,因为它不以.jpg结尾?当我点击它时,它直接进入图像,但在源代码中没有改变?再次感谢都铎瑞泽!我已经为后代编辑了JSFIDLE at上的代码。除非您在HTML选项卡中从Firebug查看,否则源代码不会更改。@Tudorizer-编辑问题?为什么?@Tudorizer-编辑问题?为什么?