为了放置一个外部小部件,而不必让非技术人员将嵌入代码粘贴到网页上的每个期望位置,我正在使用一个可视化的div
和p
标记选择器,人们可以在其中精确定位期望的元素。
当人们悬停在一个元素上时,它会显示一个红色的边框,向他们显示所选择的内容。
对于我们放置小部件,通常我们将以class
或id
为目标。然而,class
/id
应该是唯一的,这样它才能工作,而随机
p标记的唯一类非常罕见。
通过一段jquery代码:
$(document).on('mouseenter mouseleave', '.sj-highlight',
function (e) {
}
我可以获取有关所选元素的DOM详细信息。是否有一种方法可以通过使用DOM详细信息中的一些数据来定位突出显示的元素,如果是,如何定位?
尝试了上面的代码,但对DOM选择的可能性不太了解。
为了使每个元素的整个突出显示成为可能,我写了以下内容:
$( document ).ready(function() {
$('div, p').each(function(i){
$(this).addClass('sj-highlight sjhighlight'+i+'');
$(this).attr('data-sj', 'sjhighlight'+i+'');
});
$(document).on('mouseenter mouseleave', '.sj-highlight', function (e) {
var sjhighlighter = $(this).attr("data-sj");
// hide other highlights
$('.sj-highlight').css("border","2px solid transparent");
if(e.type == 'mouseenter')
{
$('.'+sjhighlighter+'').css("border","2px solid #ff0000");
}
});
最终结果将是以某种方式用DOM而不是< code>class或< code>id来定位所选元素。
下面是我在尝试定位没有ID或类的元素时使用的一个选项。您首先需要找出这些突出显示的元素的共同点。它可以是特定的颜色、元素层次等。然后,您可以使用filter() jquery来查找符合该规范的所有元素。这是我用过的。
/*select an element that contains this piece of code your trying to target*/
$('#Parent_container').filter(function() {
/*here you will specify what you're trying to identify or target*/
return $(this).find('div[class="sj-highlight"]').length >0;
/*optional but you can create a condition to add code or do whatever you want*/
}).find('div[class="sj-highlight"]').after('<p>some stuff</p>');
希望这有帮助。它可能会让你知道你有什么选择。
从我放在一起的片段中,我认为如果你可以使用
$(document).on('mouseenter mouseleave', '.sj-highlight',
function (e) {});
这意味着您已经拥有它,因为 $(document).on() 表单适用于动态添加的元素(这意味着即使您动态添加元素它仍然可以正常工作),您可以使用:
var elementClass = $(this).attr('class');
您可以从那里完全控制元素。而且您也有可能超过其子项或作为 dom 元素对象返回的父项。我认为你的问题也需要澄清一下。
我通过以下方式通过文本找到了一个孩子。 问题是我需要单击父元素。页面上的元素是动态显示的,之前我只知道文本。是否可以对此进行编程? 我的html:
rank ▲ ✰ vote url 54 397 83 538 url 如何知道一个对象有一个特定的属性? 有什么方法可以检测一个对象是否有某些属性?比如: >>> a = SomeClass() >>> a.someProperty = value >>> a.property Traceback (most recent call last): File "<stdin>", line 1
问题内容: 我需要从给定列表中选择一些元素,知道它们的索引。假设我要创建一个新列表,该列表包含给定列表[-2、1、5、3、8、5、6]中索引为1、2、5的元素。我所做的是: 有什么更好的方法吗?像c = a [b]? 问题答案: 您可以使用: 或者您可以使用numpy: 但实际上,您当前的解决方案很好。这可能是所有人中最整洁的。
另外,我不想要任何jQuery。
如何定位图标的元素(在这种情况下显示地图内的范围),其id是未知的,也没有文本值。搜索面板上的那些图标有它们的静态类名。我试图实现CssSseltor和XPath。由于某种原因,CssSelector无法找到该元素,但XPath部分显示了一些结果。我想我将继续使用XPath。 该面板上的所有图标的类名前缀必须相同。说, > ux-row-action-项目hasGeoExt(类名称-在地图内显示范