- First Item
- item Name
- product 1
- Item Description
- product description
- Additional Info
- Red
- Color
- Red
- Second Item
- item Name Blue
- product 2
- Item Description
- product2 description
- Additional Info
- -----
- Color
- Blue
- Third Item
- item Name Purple
- product 3
- Item Description
- -------
- Additional Info
- -----
- Color
- ------
[*]Color
[*]Red
Тогда, если Имя элемента синее текст существует, мне нужно удалить связанных детей
[*]Additional Info
[*]-----
И если третье имя элемента Purple существует, то удалите связанных детей:
[*]Item Description
[*]-------
[*]Additional Info
[*]-----
[*]Color
[*]------
Я создаю этот скрипт, но, например, имя color удаляется повсюду. Даже если в название элемента или в название элемента Purple должно оставаться там. Я думаю, что проблема в том, что у первого продукта есть имя Имя элемента , а во втором продукте имя начинается с Имя элемента Purple .
jQuery(document).ready(function() {
if (jQuery('.items-class li:contains("item Name")').length > 0)
{
var parent = jQuery('.items-class');
var children = jQuery('.items-class').find("li");
jQuery(children).each(function(i, e) {
if(~jQuery(e).text().indexOf("item Name Blue")) {
jQuery(parent).find('li:contains("Additional Info")').html('');
jQuery(parent).find('li:contains("-----")').html('');
}
if(~jQuery(e).text().indexOf("item Name Purple")) {
jQuery(parent).find('li:contains("Item Description")').html('');
jQuery(parent).find('li:contains("-------")').html('');
jQuery(parent).find('li:contains("Additional Info")').html('');
jQuery(parent).find('li:contains("-----")').html('');
jQuery(parent).find('li:contains("Color")').html('');
jQuery(parent).find('li:contains("-----")').html('');
}
else if(~jQuery(e).text().indexOf("item Name")) {
jQuery(parent).find('li:contains("Color")').html('');
jQuery(parent).find('li:contains("Red")').html('');
}
});
}
});
Подробнее здесь: https://stackoverflow.com/questions/366 ... javascript