2017-07-17 70 views
-2

我正在尝试检索并遍历页面上所有跨度和具有名称标记的元素。有任何想法吗?获取所有包含[name]的跨度

$("span[name$='*']").each(function() { // first pass, create name mapping    
      // Console.log(this); 
      //name_map[name] = (name_map[name]) ? name + "[]" : name; 
}); 

<span class="col-xs-2 control-label" name="toddler">xxx</span> <-- get this 
<span class="col-xs-2 control-label">xxx</span> <-- don't get this 
+2

'$(“span [name]”)' –

回答

2

var arr = $("span[name]").map(function() { 
 
    return $(this).text() 
 
}).get(); 
 

 

 
console.log(arr)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="col-xs-2 control-label" name="toddler">xxx1</span> 
 
<span class="col-xs-2 control-label">xxx</span>

  1. 只使用$('span[name]')。意味着名称属性的跨度
+0

如果你想使用纯JavaScript,你可以使用 'document.querySelectorAll('span [name]');' –

+0

@guradio任何想法如何序列化这些值? – alwaysVBNET

+0

@alwaysVBNET你可以序列化使用'.serialize();'但它需要名称和值。并且值不是span的有效属性..你需要使用'input'。或者你可以自己创建它 – guradio

4

您可以将属性放在没有值的选择器中,例如[name]。试试这个:

$("span[name]").addClass('foo');
.foo { color: #C00; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="col-xs-2 control-label" name="toddler">yes</span> 
 
<span class="col-xs-2 control-label">no</span>

+1

@Satpal谢谢! –

相关问题