2015-09-12 3 views
2

кажется таким легким, но я не могу достичь запятой в своем HTML и просто удалить его со страницы. Должно быть, что-то легкое, что мне не хватает. Спасибо за помощь.Я пытаюсь удалить запятую, и я не могу понять, почему?

Мой HTML фрагмент выглядит следующим образом:

<div id="heightWeightContainer" class="inlineBlock"><span id="height" class="sans14 topData bold"></span>,</div> 

Вы увидите запятую в конце строки.

Я пробовал несколько разных способов избавиться от этого парня.

$('#heightWeightContainer').html().replace(",",""); 
$('#heightWeightContainer').text().replace(",",""); 
$('#height').parent().text().replace(',',''); 

Я даже попробовал чисто JS с getElementById & .Привернуть но ничего не кажется, чтобы получить его.

Я могу добавить, что эти строки кода работают в консоли, поэтому я не уверен, почему это не будет в моем js-файле.

Что мне не хватает? Спасибо

+0

Может быть, вы вызываете функцию до DOM готова? Или ваша функция никогда не называется? Добавьте некоторые отладочные сообщения, чтобы проверить, называется ли оно –

+2

, вы не меняете dom, просто заменяя строку, которая никогда не используется нигде. – charlietfl

ответ

7

Вы только что заменили , и ничего не делаете с возвращаемой строкой. Вы можете использовать html() с функцией обратного вызова для обновления содержимого. Добавить глобальный флаг 'g', если вы хотите, чтобы удалить все вхождения

$('#heightWeightContainer').html(function(i, v) { 
    return v.replace(",", "") 
}); 

Или вы можете заменить только текст в текстовом узле, который не будет вредить любую привязку событий к внутренним элементам HTML. Используйте contents(), чтобы получить детей, включая текстовые и комментарии узлов. Итерации над ними с помощью each()

$('#heightWeightContainer').contents().each(function() { 
    if (this.nodeType == 3) { 
     this.textContent = this.textContent.replace(',', ''); 
    } 
}); 
+1

Лучше не выполнять замену HTML. Вы собираетесь уничтожить и обработчиков или данных внутри 'heightWeightContainer'. –

+0

@squint, не могли бы вы его уточнить? – sinisake

+1

также обратите внимание, что вместо этого будет заменено только первое вхождение – charlietfl

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