我有一些代码用于识别在下拉菜单中单击哪些链接,并回读层次结构。 (父母,孩子,孙子)。代码很有效,我不想改变它。
问题是html中有换行符和回车符,并将它们包含在我的警报中,导致报告问题。
有没有办法可以使用现有代码,并添加忽略/删除任何中断或回车的内容?
$("ul#menudropd .myclass li a").click(function() {
var granchild = $(this).text(),
parent = $(this).closest(".anotherclass").find("a:first").text();
if ($(this).hasClass("subbold")) {
child = "";
} else {
child = $(this).closest("li").prevAll("li:has(a.subbold)").first().find('a').text();
}
alert(parent + ":" + child + ":" + grandchild);
});
有些警报会像这样回复: " ClickedParent ::
ClickedGrandChild"
我想:" ClickedParent :: ClickGrandChild"每一次。
答案 0 :(得分:1)
这将删除回车符和换行符代码:
alert((parent + ":" + child + ":" + grandchild).replace(/(\n|\r)/g,''));
答案 1 :(得分:0)
这是因为child
未定义或为null。您需要检查未定义的子项或null,并根据您可以显示警报。像这样的东西,
if(child!=null && typeof child != 'undefined')
alert(parent + ":" + child + ":" + grandchild);
else
alert(parent + ":" + " " + ":" + grandchild);