如何结合两个if语句使用以下操作

问题描述:

我的代码试图判断是否有孩子H1H2元素包含可以被分配给一个变量的文本,如果没有默认为父元素文本:如何结合两个if语句使用以下操作

if($(this).children('h1').length){ 
    markerCon[markerNum] = $(this).children('h1').text(); 
} else if($(this).children('h2').length){ 
    markerCon[markerNum] = $(this).children('h2').text(); 
} else { 
    markerCon[markerNum] = $(this).text(); 
} 

这工作,但我想提高我的代码,并从我的理解,我可以使用OR运营商以确定同样的事情,就像这样:

if($(this).children('h1').length || $(this).children('h2').length){ 
    // how do I write this part? 
} else { 
    markerCon[markerNum] = $(this).text(); 
} 

票面t我不明白的是如何编写声明的当时部分,告诉变量哪个元素能够从文本中抓取文本。有人可以帮忙吗?

+2

我认为你只会让你的代码复杂化。 – MightyPork

+0

我是吗?我认为使用OR运算符会改善我的代码,但如果共识是离开它,那么我会! (仍在学习) –

+0

你的代码很好,因为你只是给markerCon分配一些东西,这取决于你只能使用一个条件,所以你不能使用OR –

我没有测试这个,但我相信它会做同样的更短的代码。

markerCon[markerNum] = $(this).children('h1').text() || $(this).children('h2').text(); 
markerCon[markerNum] = markerCon[markerNum] || $(this).text(); 

这并假设,如果h1h2存在,其中的文本不是空字符串。

+0

只能执行'markerCon [markerNum] = $(this).children('h1 ,h2')。text()|| $(this).text();'带这些条件 – megawac

+0

@megawac我在问题中遵循了'if'的逻辑。如果有'h1',则不使用'h2',但在您的示例中,'markerCon [markerNum]'将包含两个字符串。 – Rudy