读书人

请教有没有简洁的办法获得这段代码的所

发布时间: 2013-03-01 18:33:02 作者: rapoo

请问有没有简洁的办法获得这段代码的所有class


<div>
T<span id='1' class='red'><span id='2' class='bold'>his</span></span> is <span id='3' class='blue'>som</span>e sample text.
</div>


如何
获得 his 的两个class: red bold
som的一个class: blue
存入数组.

$('span').each(function(){
textArry.push($(this).text());
classArry.push($(this).attr('class'));
})

这样取出再处理,很麻烦.

[解决办法]
<div>
T<span id='1' class='red'><span id='2' class='bold'>his</span></span> is <span id='3' class='blue'>som</span>e sample <span>text</span>.
</div>
<script type="text/javascript" src="http://www.coding123.net/js/jquery.js"></script>
<script>
$(function () {
var cls = {};
$('span').not(':empty').each(function () {
if (this.firstChild.nodeType == 1) return true;
kw = this.innerHTML;
cls[kw] = $(this).parentsUntil('div').add(this).map(function () { return this.className }).get();
});

for (kw in cls) alert(kw + '=' + cls[kw]);
});
</script>

[解决办法]
引用:
引用:JavaScript code?1234567891011121314151617$(function(){ var data = [{ txt : 'his' , classes : [] } , { txt : 'som' , classes : [] }……


那用下面这个吧

$(function(){
var data = {} , key;
$('span').each(function(){
key = $.trim($(this).text());
if(!data.hasOwnProperty(key)){
data[key] = [];
}
data[key].push($(this).attr('class'));
});
console.log(data);
});

读书人网 >Ajax

热点推荐