Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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从SPAN元素中提取name属性?_Javascript_Jquery_Html_Greasemonkey - Fatal编程技术网

Javascript 如何使用jQuery从SPAN元素中提取name属性?

Javascript 如何使用jQuery从SPAN元素中提取name属性?,javascript,jquery,html,greasemonkey,Javascript,Jquery,Html,Greasemonkey,我有一个HTML文件,我正在使用一个greasemonkey脚本,其中我使用了jQuery HTML页面很长,但我在整个页面中有许多元素 让我们假设元素如下所示: <span id="spnMX45" name="spnMX45" >16</span> <span id="spnMX46" name="spnMX46" >10</span> <span id="spnMX47" name="spnMX47" >11</span&g

我有一个HTML文件,我正在使用一个greasemonkey脚本,其中我使用了jQuery

HTML页面很长,但我在整个页面中有许多
元素

让我们假设元素如下所示:

<span id="spnMX45" name="spnMX45" >16</span>
<span id="spnMX46" name="spnMX46" >10</span>
<span id="spnMX47" name="spnMX47" >11</span>
<span id="spnMX48" name="spnMX48" >5</span>
我试过:

arr = [this.name];
arr = this.name;
arr = [this.attr('name')];
arr = this.Attr('name');
我就是不明白。是否无法获取范围属性?我对此表示怀疑,但我想不出这一点。我已经用几个不同的输入类型元素成功地完成了这项工作。我无法成功获取此对象的
text()
,但我似乎无法获取该dang name,甚至id属性。

使用以下方法:

atr = $(this).attr('name');
使用以下命令:

atr = $(this).attr('name');
“我需要从每个元素中获得两个值 “spnMX”后面的数字和跨度文本。“

元素不允许
名称
属性顺便说一句

鉴于您的ID与每个姓名完全相同,您可以使用以下选项:

$("span[id^=spnMX]").each(function(){
  var text = this.innerHTML; 
    // Returns 16, 10, 11, 5. The text inside each <span>.
  var idNum = this.id.match(/[\d]+$/)[0]; 
    // Returns 45, 46, 47, 48. The parts of each ID after spnMX. 
});
$(“span[id^=spnMX]”)。每个(函数(){
var text=this.innerHTML;
//返回16、10、11、5。每个字段中的文本。
var idNum=this.id.match(/[\d]+$/)[0];
//返回45、46、47、48。每个ID在spnMX之后的部分。
});
现在使用这些变量,您应该会发现任务的其余部分很好:)

“我需要从每个元素中获得两个值 “spnMX”后面的数字和跨度文本。“

元素不允许
名称
属性顺便说一句

鉴于您的ID与每个姓名完全相同,您可以使用以下选项:

$("span[id^=spnMX]").each(function(){
  var text = this.innerHTML; 
    // Returns 16, 10, 11, 5. The text inside each <span>.
  var idNum = this.id.match(/[\d]+$/)[0]; 
    // Returns 45, 46, 47, 48. The parts of each ID after spnMX. 
});
$(“span[id^=spnMX]”)。每个(函数(){
var text=this.innerHTML;
//返回16、10、11、5。每个字段中的文本。
var idNum=this.id.match(/[\d]+$/)[0];
//返回45、46、47、48。每个ID在spnMX之后的部分。
});
现在使用这些变量,您应该会发现任务的其余部分很好:)

请注意:

  • Javascript(和jQuery)区分大小写
    .attr
    有效
    .Attr
    不可用
  • 循环中的该
    不是jQuery对象。因此,为了使用jQuery函数,如
    .attr()
    ,您需要
    $(this.attr()
  • jQuery
    .map()
    在映射数组方面非常强大,但它返回一个jQuery对象。使用
    .get()
    获得最终结果
  • 由于jQuery选择器使用
    id
    ,并且
    id
    名称相同(无效HTML!),因此使用id提取该值
    
把它们放在一起;使用():

对于示例跨度,此代码在控制台中给出以下结果:

4
[ ["45", "16"], ["46", "10"], ["47", "11"], ["48", "5"] ]
请注意:

  • Javascript(和jQuery)区分大小写
    .attr
    有效
    .Attr
    不可用
  • 循环中的该
    不是jQuery对象。因此,为了使用jQuery函数,如
    .attr()
    ,您需要
    $(this.attr()
  • jQuery
    .map()
    在映射数组方面非常强大,但它返回一个jQuery对象。使用
    .get()
    获得最终结果
  • 由于jQuery选择器使用
    id
    ,并且
    id
    名称相同(无效HTML!),因此使用id提取该值
    
把它们放在一起;使用():

对于示例跨度,此代码在控制台中给出以下结果:

4
[ ["45", "16"], ["46", "10"], ["47", "11"], ["48", "5"] ]

$(this.attr('name');span元素上不能有name属性,HTML中不允许有name属性。$(this.attr('name');span元素上不能有name属性,这在HTML中是不允许的。谢谢您的解释。我喜欢这个代码,它和我刚开始的代码最接近。我必须找出你在第二和第三个要点中所说的更多细节。顺便说一句,那些span不是我的代码,所以我只是发布了来自原始站点的内容。他们的代码的其余部分看起来并没有太好。:)再次感谢,不客气;很乐意帮忙。我知道那些跨距不是你的(我经常使用Greasemonkey标记),但是无效代码会更频繁地被更改/修复,因此如果你的脚本更多地依赖于有效部分,你的代码将适合页面更长时间(希望如此)。:)关于更多细节,我更新了答案。谢谢你的解释。我喜欢这个代码,它和我刚开始的代码最接近。我必须找出你在第二和第三个要点中所说的更多细节。顺便说一句,那些span不是我的代码,所以我只是发布了来自原始站点的内容。他们的代码的其余部分看起来并没有太好。:)再次感谢,不客气;很乐意帮忙。我知道那些跨距不是你的(我经常使用Greasemonkey标记),但是无效代码会更频繁地被更改/修复,因此如果你的脚本更多地依赖于有效部分,你的代码将适合页面更长时间(希望如此)。:)有关更多详细信息,我更新了答案。谢谢。我还没有尝试过。每个功能,但很高兴看到它将如何完成。谢谢。我还没有尝试过。每个功能,但很高兴看到它是如何实现的。