JQuery扩展页面的所有可折叠部分(来自外部网站)

时间:2015-06-17 18:45:06

标签: javascript jquery amazon

该页面包含多个部分。每个部分由TD块表示(参见下面的代码),实际页面将显示">"图标(将鼠标悬停在它上面显示a href:javascript:void(0)),当手动点击时,它会通过从SPAN块对端点的POST调用来扩展该部分。

<td id="abc-parent" data-column="parent" data-row="abc" class="mt-cell mt-center">
<a href="javascript:void(0)">
    <span class="a-declarative" data-action="myitable-fetch-rows" data-myitable-fetch-rows="{&quot;endpoint&quot;:&quot;/hz/inventory/variation?parentRecord=abc&quot;,&quot;rowId&quot;:&quot;abc&quot;}">
        <div class="mt-variation-icon mt-variation-expand"/>
    </span>
</a></td>

我希望创建一个包含一行JQuery的bookmarklet。当被调用时,它会扩展页面的所有可折叠部分。

我的意思是这样的(注意这不能实现我上面描述的):

javascript:jQuery('.a-declarative').each(function(i,e){e.click()})

2 个答案:

答案 0 :(得分:1)

为所有可扩展区域创建一个全局类aMap.remove(IdEscola)(确保它们都拥有它,即使您必须在另一个.active之后添加它)

确保class="another active"是展开状态。然后在下面调用它。

.active

Simple jsfiddle demo of this.

如果出于某种原因,您无法更改加价以进行全球活跃课程,则可能需要与所有“扩展选择器”进行调用。 (但应该没有理由)

$('.item').toggleClass('active');

有关bookmarklet方面的帮助;这是一个很酷的链接,可以帮助你;但你应该做的就是在函数中定义上述内容,然后使用$('.item').toggleClass('active expanded open'); 事件触发。

更新!我刚刚通过评论部分发送了另一个指针;但是您知道可以通过jQuery将类.click()添加到共享相同类或ID的所有切换。但是您仍然需要调查如何在此外部网站上构建切换,以便将展开状态与新.active状态合并。没有办法知道这个,因为你没有发布该代码;但它通常很容易在.active找到。

.css

答案 1 :(得分:1)

我认为你正在寻找&#34; Trigger&#34;功能:

  

.trigger(eventType [,extraParameters])描述:执行附加到给定事件类型的匹配元素的所有处理程序和行为。

     

https://api.jquery.com/trigger/

所以上面的代码应该是这样的:

$('.a-declarative').trigger('click');

使用风险自负,因为这不是一种非常稳定的触发事件的方式。