Jquery避免外部链接
大家好我有个问题请大家帮忙, 我有一个网站,在代码中动态地为我的链接指定了Id和href属性Jquery避免外部链接,jquery,hyperlink,attr,Jquery,Hyperlink,Attr,大家好我有个问题请大家帮忙, 我有一个网站,在代码中动态地为我的链接指定了Id和href属性 $('.portfolio_item').each(function(i) { $(this).find('a').attr('href' && 'href*="#"', '#work_' + i); $(this).find('.podrt_descr').attr('id', 'work_' + i); }); 现在,当我使用wordpres
$('.portfolio_item').each(function(i) {
$(this).find('a').attr('href' && 'href*="#"', '#work_' + i);
$(this).find('.podrt_descr').attr('id', 'work_' + i);
});
现在,当我使用wordpres时,我会尝试向外部站点添加新链接,但所有链接都没有
当我将链接添加到外部站点时,我的链接会获得内部链接,如#work I
,所以有人能告诉我如何告诉我的jquery代码,我在开始时给出了这些代码,避免外部链接,只使用内部链接,我尝试使用
$('.portfolio_item').each(function(i) {
$(this).find('a').attr('href*="#"', '#work_' + i);
$(this).find('.podrt_descr').attr('id', 'work_' + i);
});
为了避免,但它不起作用,因此我将非常感谢您的任何建议谢谢您看起来您误解了示例中的
&
运算符<代码>a和b表示“如果a是,使用b;如果不是,使用a”。字符串'href'
是真实的,因此代码中的'href'&&&'href*=“#”
计算结果为字符串'href*=“#”
。这是jQuery的.attr
方法的无效参数,因为属性名称中不允许使用特殊字符,如*
和“
”,当我尝试运行代码时,它引发了InvalidCharacterError
相反,您可以使用<代码> [HeRF^=“y]”[/Cord]来仅选择从字符“代码> > < <代码> >的URL链接。这不一定只匹配内部的链接-取决于您所考虑的“内部”的意思-但对于上下文来说可能已经足够了。 使用“以选择器开头”属性将使代码如下所示:
$('.portfolio_item').each(function(i) {
$('body').find('a[href^="#"]').attr('href', '#work_' + i);
$(this).find('.podrt_descr').attr('id', 'work_' + i);
});
如果您还想使用相对URL匹配链接,或者使用绝对URL匹配指向您自己网站的链接,则需要更多的逻辑来处理。但这可能足以让您开始。看起来您误解了示例中的
&&
运算符。a&&b
表示“如果a是,请使用b;如果没有,请使用“.”字符串'href'
是真实的,因此代码中的'href'&&&&'href*=“#”
的计算结果为字符串'href*=“#”
。这是jQuery的方法的无效参数。attr
方法不允许在属性名称中使用特殊字符,如*
和“
”,当我试着运行你的代码时,它引发了一个InvalidCharacterError
相反,您可以使用a[href^=“#”]
仅选择URL以字符#
开头的链接。这不一定只匹配内部的链接-取决于你所认为的“内部”意味着什么,但是对于你的上下文来说可能足够了。
使用“以选择器开头”属性将使代码如下所示:
$('.portfolio_item').each(function(i) {
$('body').find('a[href^="#"]').attr('href', '#work_' + i);
$(this).find('.podrt_descr').attr('id', 'work_' + i);
});
如果您还想使用相对URL匹配链接,或者使用绝对URL匹配指向您自己站点的链接,则需要更多的逻辑来处理。但这可能足以让您开始学习。
$(this).find('a[href*=“#”]').attr('href','#work#i)代码>不幸的是,这个解决方案不起作用。当我像你的报价一样修复时,我的链接断了。谢谢你。我添加了图片。也许你可以更好地理解我的问题,更好地做一个解释,解释你的代码是什么,预期结果是什么code@MohamedYousef使用a[href*=“#”]
(the)将匹配包含字符串“#”的URL在任何位置,即带有。任何URL都可以有一个片段,因此这不会将选择仅限于内部链接。$(this).find('a[href*=“#”]').attr('href','#work#i)代码>不幸的是,这个解决方案不起作用。当我像你的报价一样修复时,我的链接断了。谢谢你。我添加了图片。也许你可以更好地理解我的问题,更好地做一个解释,解释你的代码是什么,预期结果是什么code@MohamedYousef使用a[href*=“#”]
(the)将匹配包含字符串“#”的URL在任何位置,即带有。任何URL都可以有一个片段,因此,这并没有将选择限制为仅限于内部链接。感谢您的建议,但不幸的是,此解决方案不起作用。我以前尝试过此解决方案,我的项目中有与我的代码冲突的库。我需要解决方案哪一个将检查href是否有#work#I它将拒绝此解决方案,并使用类似此的外部链接确定,你在用什么图书馆?您尝试了哪些步骤来解决此问题?您需要向我们展示您的代码,并为我们提供更多的上下文。感谢您的建议,但不幸的是,此解决方案不起作用我以前尝试过,我的项目中有库与我的代码冲突我需要解决方案哪一个将检查href是否有#work#I它将拒绝它并使用类似此的外部链接OK,你在用什么图书馆?您尝试了哪些步骤来解决此问题?您需要向我们展示您的代码,并为我们提供更多的上下文。