jquery atrr(“href”)在sharepoint中不一致

jquery atrr(“href”)在sharepoint中不一致,jquery,sharepoint,Jquery,Sharepoint,我有一个jquery函数(这不是我写的,我还在学习)。在这方面,我们在几个地方使用f.attr(“href”)替换URL。我不理解从何处绑定此href值。以及为什么值(f.attr(“href”)在不同的地方发生变化。我的意思是说,它在一个位置有一些价值,如果我给出相同的值,它在另一个位置给我不同的价值 我在文章中读到,.attr()方法只获取匹配集中第一个元素的属性值。匹配集是什么意思 2. 让我这样修改我的问题:我可以在Jquery函数中附加查询字符串吗?我想从网页中再添加两个queryst

我有一个jquery函数(这不是我写的,我还在学习)。在这方面,我们在几个地方使用f.attr(“href”)替换URL。我不理解从何处绑定此href值。以及为什么值(f.attr(“href”)在不同的地方发生变化。我的意思是说,它在一个位置有一些价值,如果我给出相同的值,它在另一个位置给我不同的价值

我在文章中读到,.attr()方法只获取匹配集中第一个元素的属性值。匹配集是什么意思

2. 让我这样修改我的问题:我可以在Jquery函数中附加查询字符串吗?我想从网页中再添加两个querystring元素以获得完整的url。如果我们能……我们怎么能做到呢


.替换“${my_email}”,“mailto:my@u.com?主题=Thanku&body=Jquery正在工作。%0A%0ahttp://www.my.site.com/_layouts/products/New.aspx?url=“+f.attr”(“href”))在这篇文章中,f.attr(“href”)给了我与我们使用的其他网站不同的价值。基本上,它只给了我一半的链接


您需要什么吗?我可以为您提供感谢u

如果页面上有多个锚定标签,您有机会选择多个锚定标签

<a href="#">Missed</a>
<div>
    <a href="#">Anchor</a>
    <a href="#">Anchor</a>
    <a href="#">Anchor</a>
    <a href="#">Anchor</a>
    <span><a href="#">Missed</a></span>
</div>

如果您使用
$('div>a')
作为jQuery选择器,您将匹配(在本例中)所有内容为“锚定”的锚定标记;因为此选择器仅匹配作为div子项的锚定标记

您可以通过调用
alert(f.length)来查看匹配的元素集的数量

如果您可以提供定义
f
的代码,或者在页面中看到一些HTML,我们将能够更具体地帮助您


如果使用f.attr()设置值,所有匹配的元素都将更新。如果使用f.attr()获取值,则只返回第一个元素的值。

如果页面上有多个锚定标记,则有可能选择多个锚定标记

<a href="#">Missed</a>
<div>
    <a href="#">Anchor</a>
    <a href="#">Anchor</a>
    <a href="#">Anchor</a>
    <a href="#">Anchor</a>
    <span><a href="#">Missed</a></span>
</div>

如果您使用
$('div>a')
作为jQuery选择器,您将匹配(在本例中)所有内容为“锚定”的锚定标记;因为此选择器仅匹配作为div子项的锚定标记

您可以通过调用
alert(f.length)来查看匹配的元素集的数量

如果您可以提供定义
f
的代码,或者在页面中看到一些HTML,我们将能够更具体地帮助您


如果使用f.attr()设置值,所有匹配的元素都将更新。如果使用f.attr()获取值,则只返回第一个元素的值。

匹配集为零,并且作为初始查询结果的更多元素,例如
$('.foo')
将返回一个包含定义了类foo的所有元素的集。在该集合上调用
.attr('href')
时,它将只返回集合中第一个元素的属性(如果有),因为返回数组或串联中的所有属性通常不是大多数人想要的

如果确实需要所有属性,可以执行以下操作:

var array_of_hrefs = $('.foo').each(function(){
  return $(this).attr('href')
}).get();

匹配的集合是零个或多个元素,它们是初始查询的结果,例如
$('.foo')
将返回一个集合,其中包含定义了类foo的所有元素。在该集合上调用
.attr('href')
时,它将只返回集合中第一个元素的属性(如果有),因为返回数组或串联中的所有属性通常不是大多数人想要的

如果确实需要所有属性,可以执行以下操作:

var array_of_hrefs = $('.foo').each(function(){
  return $(this).attr('href')
}).get();

在jQuery调用中使用选择器时,它可能会匹配多个元素。结果作为jQuery对象返回,该对象可能包含匹配对象的集合(数组)。有些方法,如
attr
只对集合中的第一个元素起作用

比如说,

$('a')
$('a').attr('title','foo');
将匹配文档中的所有定位标记

现在,每个选择器(可能)都有一个
href
属性,但如果将
attr
函数应用于该选择器的结果,则它将仅对集合中的第一个元素进行操作。如果我有下面的HTML

 <a href='#0'>Zero</a>
 <a href='#1'>One</a>
然后
href
变量的值将为
#0
,尽管选择器与两个锚匹配

更让人困惑的是,通常分配值而不是读取值的方法版本会处理集合中的所有元素。比如说,

$('a')
$('a').attr('title','foo');
foo
分配给集合中两个锚的title属性。了解不同方法操作方式的差异很重要。有关特定方法的更多详细信息,请参阅


在您的例子中,我怀疑
f
是一个与代码中不同位置的不同选择器匹配的变量(
f
是一个糟糕的变量名,顺便说一句,让它更详细可能有助于理解代码的功能)。这就解释了为什么它在不同的位置具有不同的
href
属性值。当然,这些值也可能因为您正在设置它们而发生变化,但我希望您能够理解如果发生了这种情况。

当您在jQuery调用中使用选择器时,它可能会匹配多个元素。结果作为jQuery对象返回,该对象可能包含匹配对象的集合(数组)。有些方法,如
attr
只对集合中的第一个元素起作用

比如说,

$('a')
$('a').attr('title','foo');
将匹配文档中的所有定位标记

现在,它们中的每一个都(可能)有一个
href
属性,但是如果您在