在这种情况下 - 我的代码中有<li>
出现在我需要应用定位的某些条件中。它没有id,没有课程。我不能使用nth-child,因为有时它不存在,所以下一个<li>
被选中,这打破了我的设计。我已经在这几个月了,似乎Javascript将是这里唯一的答案,但我甚至不知道从哪里开始。
我想我可以修改源代码以给<li>
一个id,但这并不像我想的那样优雅。修改代码将破坏插入此代码的插件的删除脚本。
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
你需要做的是找出li元素的唯一点,它可以是id,class,attribute,style,innerText或任何东西。
例如:
ele.innerText
来匹配它window.getComputedStyle(element).getPropertyValue("background")
来遍历容器中的所有li元素。 <强>更新强>
首先,如果你的li元素具有唯一属性,class,id,那将更容易。
<li class="test" id="test" name="handsome"></li>
li.test {}
li#test {}
li[name="handsome"] {} // ~=, ^=, $=, *= will also work
在你的情况下,如果a标签的href属性是唯一的,你可以像下面这个简单的例子那样做。
function getTarget() {
//find all the li elements in your container
var $targetList = $('.container li');
var $link;
for( var i = 0; i < $targetList.length;i++) {
$link = $($targetList[i]).find('a');
//you can use any unique point to find the one
if ($link.length && $link.attr('href') == 'xxxxxx') {
return $targetList[i];
}
}
}
// the target is the li you want
target = getTarget();
另外,如果您不确定是否需要href值,您可以使用string.indexOf('http://www.test.com')
,如果您的li的innerText是唯一的,只需更改判断,这取决于您的实际情况,只需找到唯一的点并匹配它。