2009-12-20 2 views
1

Im в состоянии получить список всех пролетах, имеющих атрибут Dir = «SomeValue», со следующим утверждением JqueryВозвращает текст каждого диапазона с помощью JQuery

$("span[dir='somevalue']") 

Я хочу текст каждого диапазона, т.е. для Например, <span dir='somevalue'> text </span>, мне нужно значение «текст», и я хочу это для каждого диапазона, возвращаемого предыдущим оператором. Любой способ сделать это с помощью JQuery?

Спасибо

ответ

1
$("span[dir='somevalue']").text() 

даст вам конкатенации всего текста. Если вы хотите, массив и использовании Javascript 1.8 вы можете использовать

$("span[dir='somevalue']") 
    .get() 
     .reduce(function (a,b) { return a.concat([$(b).text()]); }, []) 
+0

Версия CMS намного приятнее, чем моя! – Rich

7

Я думаю, что это хороший случай использовать Traversing/map:

var values = $("span[dir='somevalue']").map(function(){ 
    return $(this).text(); 
}).get(); 

Переменная values теперь является Array, который содержит по каждому элементу массива внутренний текст каждого span, соответствующий вашему селектору.

Если вы хотите объединить все значения в строке, вы можете использовать Array.prototype.join:

var allValues = values.join(" "); // using a space as separator between values 
0

или

var values = []; 
$("span[dir='somevalue']").each(function(){ 
    values.push($this.text()); 
}); 

немного скучный, но легко понять.

+0

Должно быть values.push ($ (this) .text()); конечно. – Rich

Смежные вопросы