Javascript 如何选择没有类和id的元素,即';你不总是在那里吗?
情况是这样的-在我的代码中有一个Javascript 如何选择没有类和id的元素,即';你不总是在那里吗?,javascript,html,css,Javascript,Html,Css,情况是这样的-在我的代码中有一个,它出现在我需要应用定位的特定条件下。它没有id,没有类。我不能使用第n个子项,因为有时它不在那里,所以下一个被选中,破坏了我的设计。我已经研究这个问题好几个月了,Javascript似乎将是这里唯一的答案,但我甚至不知道从哪里开始 我想我可以修改源代码,给一个id,但这不是我想要的优雅解决方案。以这种方式修改代码将破坏插入此代码的插件的删除脚本 任何帮助都将不胜感激。谢谢。您需要做的是找出li元素的唯一点,它可以是id、类、属性、样式、innerText或任何内
,它出现在我需要应用定位的特定条件下。它没有id,没有类。我不能使用第n个子项,因为有时它不在那里,所以下一个
被选中,破坏了我的设计。我已经研究这个问题好几个月了,Javascript似乎将是这里唯一的答案,但我甚至不知道从哪里开始
我想我可以修改源代码,给
一个id,但这不是我想要的优雅解决方案。以这种方式修改代码将破坏插入此代码的插件的删除脚本
任何帮助都将不胜感激。谢谢。您需要做的是找出li元素的唯一点,它可以是id、类、属性、样式、innerText或任何内容。
例如:
- 元素的innerText是'i am li',只需遍历容器中的所有li元素,使用
进行匹配ele.innerText
- 或者li有一个背景:红色,这是唯一的,您可以使用
遍历容器中的所有li元素窗口.getComputedStyle(元素).getPropertyValue(“背景”)
首先,如果您的li元素具有唯一的属性、类、id,则会更容易
<li class="test" id="test" name="handsome"></li>
li.test {}
li#test {}
li[name="handsome"] {} // ~=, ^=, $=, *= will also work
li.test{}
li#测试{}
li[name=“hasty”]{}/~=,^=,$=,*=也可以
在您的情况下,若标签的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();
函数getTarget(){
//查找容器中的所有li元素
var$targetList=$('.container li');
var$link;
对于(变量i=0;i<$targetList.length;i++){
$link=$($targetList[i]).find('a');
//您可以使用任何唯一点来查找该点
如果($link.length&&$link.attr('href')=='xxxxxx'){
返回$targetList[i];
}
}
}
//目标是你想要的李
target=getTarget();
此外,如果您不确定href值,可以使用
string.indexOf('http://www.test.com“)
,如果你的李的内部文本是唯一的,只要改变判断,这取决于你的真实情况,只需找到唯一的点并进行匹配。请共享您的代码,并让我们确切地知道您要做什么。它是如何显示在那里的?如果以编程方式创建它,可以直接引用它。可以让JSFIDLE?Nerf遍历所有列表项并查看内容吗?@bahgheera,是否要捕获变量中的