2017-07-19 45 views
0

我正在使用Jquery的點擊函數來獲取子菜單(Mobiles,Camera)的文本值。我也想獲得這些項目(電子)的父元素的文本價值。我怎樣才能達到這個使用jQuery如何獲得父項的文本值<a> JQuery中的標記元素

<li class="dropdown-submenu" id="subCategory"> 
    <a class="insideElement" tabindex="-1" href="#">Electronics</a> 
    <ul class="dropdown-menu" id="elecItems"> 
    <li><a class="insideElement" tabindex="-1" href="#">Mobiles</a></li> 
    <li><a class="insideElement" href="#">Cameras</a></li> 
    <li><a class="insideElement" href="#">Laptop</a></li> 
    <li><a class="insideElement" href="#">Pendrives</a></li> 
    <li><a class="insideElement" href="#">Televisions</a></li> 
    </ul> 
</li> 

當我點擊移動,我想要從父標籤元素作爲電子文本值。

腳本獲得子菜單的文本值:

$('#subCategory li').on('click', function(){ 
    var selectedItem=$(this).text(); 
}); 

上面的腳本,我可以得到作爲電子父元素的值類似

+0

'$(本).closest( 'UL')上一頁(。 'a')。text();' –

+0

@Teemu:謝謝。今天早上過敏眼睛! –

回答

0

更新片斷試試這個,這是讓家長a文本。

Javascript成爲

var parentElmnt = $(this).closest('#subCategory').find('a:eq(0)').text(); 
+1

這個很好用。謝謝!! –

+0

我的榮幸。 @NikhilBharadwaj –

0

你有2種選擇:

$('#subCategory li a').on('click', function(){ 
    var selectedItem=$(this).text(); 
}); 

$('#subCategory li').on('click', function(){ 
    var selectedItem=$(this).find('.insideElement').text(); 
}); 
0

您可以將函數附加到#subcategory裏面的每一個裏面,並從中找到您要查找的元素。

$('#subCategory li').click(function() 
    var a = $(this).parent().prev(); 
    alert($(a).html()); 

}); 
+0

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 –

+1

Thanks @PatrickHund,我編輯帖子 –

1

您可以使用$(this).closest('ul').siblings('a').text();這個。檢查下面

$('#subCategory li').on('click', function(){ 
 
    var selectedItem=$(this).closest('ul').siblings('a').text(); 
 
    console.log(selectedItem); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li class="dropdown-submenu" id="subCategory"> 
 
    <a class="insideElement" tabindex="-1" href="#">Electronics</a> 
 
    <ul class="dropdown-menu" id="elecItems"> 
 
    <li><a class="insideElement" tabindex="-1" href="#">Mobiles</a></li> 
 
    <li><a class="insideElement" href="#">Cameras</a></li> 
 
    <li><a class="insideElement" href="#">Laptop</a></li> 
 
    <li><a class="insideElement" href="#">Pendrives</a></li> 
 
    <li><a class="insideElement" href="#">Televisions</a></li> 
 
    </ul> 
 
</li>

1

$('#subCategory li').on('click', function() { 
 
    console.log($(this).find('a').text()); 
 
    console.log($(this).parents(".dropdown-menu").siblings("a").text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li class="dropdown-submenu" id="subCategory"> 
 
    <a class="insideElement" tabindex="-1" href="#">Electronics</a> 
 
    <ul class="dropdown-menu" id="elecItems"> 
 
    <li><a class="insideElement" tabindex="-1" href="#">Mobiles</a></li> 
 
    <li><a class="insideElement" href="#">Cameras</a></li> 
 
    <li><a class="insideElement" href="#">Laptop</a></li> 
 
    <li><a class="insideElement" href="#">Pendrives</a></li> 
 
    <li><a class="insideElement" href="#">Televisions</a></li> 
 
    </ul> 
 
</li>

0

嘗試下面的代碼

$.(this).closest('ul').prev('a').text(); 
0

在這裏,你去與解決方案https://jsfiddle.net/yuh4bq33/2/

$('#subCategory li').on('click', function(){ 
 
    console.log("Parent:" + $(this).parent().prev().text()); 
 
    console.log("Sub Menu:" + $(this).find('a').text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li class="dropdown-submenu" id="subCategory"> 
 
    <a class="insideElement" tabindex="-1" href="#">Electronics</a> 
 
    <ul class="dropdown-menu" id="elecItems"> 
 
    <li><a class="insideElement" tabindex="-1" href="#">Mobiles</a></li> 
 
    <li><a class="insideElement" href="#">Cameras</a></li> 
 
    <li><a class="insideElement" href="#">Laptop</a></li> 
 
    <li><a class="insideElement" href="#">Pendrives</a></li> 
 
    <li><a class="insideElement" href="#">Televisions</a></li> 
 
    </ul> 
 
</li>

0

您可以使用下面的jquery獲取類別和列表項的文本

$('#subCategory ul li').click(function(){ 
    var selectedItem=$(this).find("a").html(); // Selected list item 
    var selectedItem2=$(this).closest("#subCategory").find("a").first().html(); // Electronics 
    }); 
0

試試這個:

$('#subCategory li').on('click', function(){ 
    var selectedItem=$(this).text(); 
    var parent = $('#subCategory').children('a').text(); 
    $(this).text(parent); 
}); 
0

這裏是更新的代碼。您需要使用parents(),siblings()find()。此外,確保使用的類名,而做其他find(),使其獲取所有標籤:

$('#subCategory li').on('click', function() { 
 
    console.log($(this).parents(".dropdown-menu").siblings("a.insideElement").text() + ' => ' + $(this).find('a.insideElement').text()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li class="dropdown-submenu" id="subCategory"> 
 
    <a class="insideElement" tabindex="-1" href="#">Electronics</a> 
 
    <ul class="dropdown-menu" id="elecItems"> 
 
    <li><a class="insideElement" tabindex="-1" href="#">Mobiles</a></li> 
 
    <li><a class="insideElement" href="#">Cameras</a></li> 
 
    <li><a class="insideElement" href="#">Laptop</a></li> 
 
    <li><a class="insideElement" href="#">Pendrives</a></li> 
 
    <li><a class="insideElement" href="#">Televisions</a></li> 
 
    </ul> 
 
</li>

相關問題