У меня есть эта строка, которая может представлять две вещи: какой-то текст или якорный тег с текстом. Я написал что-то, чтобы всегда возвращать текст следующим образом:
$(text).is('a') ? $(text).text() : text;
Моя логика заключается в том, что если текст является тегом привязки? возвратите содержимое тега привязки: если это не так, то это уже просто текст, поэтому верните его.
Если возможно, я бы не допустил, чтобы text
был расплывчатым.
Вы, конечно, не можете просто сбросить текст в $()
и предположить, что все будет хорошо. Например, $("Some text here")
ищет в DOM элементы с тегом here
внутри элементов с тегом text
внутри элементов с тегом Some
.
Вы сказали, что хотите различать
text = "Some text here"
и
text = "<a>Some text here</a>"
Я бы просто посмотрел на строку. Частично вдохновленный проверкой jQuery, является ли то, что вы передаете, селектором или HTML ( здесь ), как насчет:
text = text.trim();
if (text.substring(0, 2) === "<a" && text.substr(-1) === ">") {
text = $(text).text();
}
или аналогичного?
Но опять же,Я бы не стал ставить себя на это место, если бы у тебя был выбор.