2013-04-29 2 views
-1

У меня есть промежуток с идентификатором и классов, как это:Получение точек для классов

<span id="foobar" class="foo bar baz"></span> 

Я хотел бы получить идентификатор и классы и поместить их в Jquery объекта:

var sd2 = $('span').attr('id'); 
var sd3 = $('span').attr('class'); 


$('span').text('#' + sd2 + '.' + sd3); 

$('span').text(function (i, text) { 
    return text.replace(/ /g, ''); 
}); 

Это хорошее начало, но проблема вывод заключается в следующем:

#foobar.foobarbaz 

объект Jquery даст «неопределенный» потому что я нужен точка, как так:

#foobar.foo.bar.baz 

Как мне получить эти точки?

Example at JsFiddle

+0

Не уверен, что я точно понимаю, что вы хотите сделать, но если вы измените эту строку на 'return text.replace (//g, '.'); 'Он выведет # foobar.foo.bar.baz –

+0

@Tim B James Я думал, что это будет как-то не хорошо, потому что я также добавляю # и тэг и другие вещи в реальном скрипте – Youss

ответ

3

Вы хотите перейти от

foo bar baz 

в

foo.bar.baz 

так, а не заменяя пробелы ни с чем (по существу, извлекая их), замените его с точкой:

var sd2 = $('span').attr('id'); 
var sd3 = $('span').attr('class').replace(/ /g, '.'); 


$('span').text('#' + sd2 + '.' + sd3); 
+0

Я думаю, что это лучший способ для моего сценария, спасибо вам большое :) – Youss

1

я ожидал бы выход быть

#foobar.foo bar baz 

и не без пробелов, как вы показать это, так как классы разделены пробелом.

Вы можете сделать простую замену, чтобы получить.

sd3.replace(/\s/g,".") 
1

Вам нужно точку там, например, так:

$('span').text(function (i, text) { 
    return text.replace(/ /g, '.'); 
}); 
1

Изменить

$('span').text(function (i, text) { 
    return text.replace(/ /g, ''); 
}); 

Для

$('span').text(function (i, text) { 
    return text.replace(/ /g, '.'); 
}); 

Список класса есть пробелы в них, и вы удаляя их.

1

Попробуйте это:

var sd3 = $('span').attr('class').split(" ").join("."); 
// Result = foo.bar.baz 

$('span').text('#' + sd2 + '.' + sd3); 
// Result = #foobar.foo.bar.baz 
1

Просто добавьте

sd3 = sd3.split(" ").join(".") ; 

, а затем используйте sd3. DEMO

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