相关疑难解决方法(0)

无法使用jQuery Data()API设置数据属性

我在MVC视图上有以下字段:

@Html.TextBoxFor(model => model.Course.Title, new { data_helptext = "Old Text" })</span>
Run Code Online (Sandbox Code Playgroud)

在单独的js文件中,我想将data-helptext属性设置为字符串值.这是我的代码:

alert($(targetField).data("helptext"));

$(targetField).data("helptext", "Testing 123");
Run Code Online (Sandbox Code Playgroud)

alert()呼叫工作正常,它显示在警报对话框文本"古文字".但是,将data-helptext属性设置为"测试123" 的调用不起作用."旧文本"仍然是属性的当前值.

我是否错误地使用了对data()的调用?我在网上看了这个,我看不出我做错了什么.

这是HTML标记:

<input data-helptext="Old Text" id="Course_Title" name="Course.Title" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)

model-view-controller jquery attributes custom-data-attribute

131
推荐指数
4
解决办法
13万
查看次数

根据部分属性查找HTML

有没有办法使用javascript(特别是jQuery)来查找基于部分属性名称的元素?

我不是在寻找任何找到这些链接中引用的部分属性值的选择器:

但还有更多的东西

<div data-api-src="some value"></div>
<div data-api-myattr="foobar"></div>
Run Code Online (Sandbox Code Playgroud)

$("[^data-api]").doSomething()
Run Code Online (Sandbox Code Playgroud)

查找具有以"data-api"开头的属性的任何元素.

javascript jquery jquery-selectors

21
推荐指数
2
解决办法
3471
查看次数

jquery使用对象作为过滤器

有没有办法通过对象选择DOM元素?

例如,我希望能够将对象关联到DOM元素,如下所示:

var obj = { a: 1, b:2 };
$('a').click(function() { this.selectThing = obj });
Run Code Online (Sandbox Code Playgroud)

后来......

$.something(obj);
Run Code Online (Sandbox Code Playgroud)

甚至更好:

$('a|selectThing?=', obj);
Run Code Online (Sandbox Code Playgroud)

这样的事情.您可以看到我想要将对象与DOM元素相关联,以便我可以使用该对象获取元素.

我知道这可以用这个filter()方法来完成,我的问题是,如果有一个更优雅的方式不使用filter()这个.

编辑:

为了澄清,我希望能够使用类似选择器的对象,所以我可以做类似于此的事情$(obj)显然不起作用,但你明白了(我希望)

编辑#2:

我希望能够做到这样的事情:

var obj = { prop: 'prop' };
$('a').bindTo(obj);
$.retreive(obj) // should equal $('a')
Run Code Online (Sandbox Code Playgroud)

我不希望它以obj任何方式改变(obj应该仍然{prop: 'prop'}只是).

javascript jquery

14
推荐指数
2
解决办法
385
查看次数

jQuery选择#id,其中word为前缀,counter为后缀

有没有办法选择带有前缀"my"和后缀"0-9"的jQuery的所有id.像这些$("#my $ 1-4")或者只是循环可能吗?

    <div id="my1"/>
    <div id="my2"/>
    <div id="my3"/>
    <div id="my4"/>
    <div id="my5"/>
Run Code Online (Sandbox Code Playgroud)

javascript jquery

9
推荐指数
1
解决办法
3万
查看次数

日历视图更改前的回调

我添加了bootstrap popovers到点击时打开的日历事件:

eventClick: (event, jsEvent, view) ->
  if event.ajaxUrl?
    elem = jQuery(@)
    elem.popover('destroy')

    jQuery.ajax({url: event.ajaxUrl})
    .done (result) ->
      elem.popover(
        placement: 'top'
        html: true
        trigger: 'manual'
        title: moment(event.start).format('dddd, DD. MMMM YYYY - HH:mm')
        content: result
        container: 'body')

      elem.popover('show')
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我更改日历视图时,这些弹出窗口保持打开状态(例如,更改月份或周/日布局).由于弹出窗口绑定到.fc-event日历中的div/span ,我需要访问这些DOM元素才能运行.popover('destroy').

每当更改fullCalendar视图时,旧的DOM-Elements将替换为新视图的那些,因此我必须在实际更改视图之前访问它们.不幸的是,只有事件加载的回调(loading在视图改变后发生)和viewDisplay(同样,但你得到新的视图).

为了确保我理解viewDisplay正确,我在日历中添加了一个小测试,总是给我"0"(数据选择器来自jquery数据选择器)

viewDisplay: (view) ->
    alert(jQuery('.fc-event:data(popover)').size())
Run Code Online (Sandbox Code Playgroud)

是否有办法在每次更改视图时挂钩日历过程 - 但在视图实际更改之前?

编辑

现在,我只是在鼠标移动到任何日历按钮上时(只是click在视图更改后执行绑定),只是销毁弹出窗口,但此解决方案只是一种解决方法

jQuery('.fc-button').on 'mouseover', () ->
    jQuery('.fc-event:data(popover)').popover('destroy')
Run Code Online (Sandbox Code Playgroud)

fullcalendar

5
推荐指数
1
解决办法
6274
查看次数

在div上需要2个id属性

通常当我有一个div时,我使用id属性来唯一地标识一个元素.

例如:

<div id="F123" class="sidebar-item">
    My first item goes here
</div>
Run Code Online (Sandbox Code Playgroud)

现在,我的div元素需要一个双'key':'slug'属性和'category'属性.

例如:

<div slug="my-first-item" category="techno" class="sidebar-item">
    My first item goes here
</div>
Run Code Online (Sandbox Code Playgroud)

编译器警告我这些属性无效.在div上使用双键的最佳方法是什么?我很确定有各种方法可以继续,但我对最好的方式感到好奇吗?

html

2
推荐指数
1
解决办法
2292
查看次数

Twitter引导程序和动态dom元素

我正在使用Twitter Bootstrap来创建工具提示.目前,我初始化工具提示$(document).ready():

$(document).ready(function() {
    $('[data-toggle="tooltip"]').tooltip();
});
Run Code Online (Sandbox Code Playgroud)

tooltip()为具有该data-toggle元素的每个元素调用(在监听器中).

问题是如果我有动态DOM元素(使用Ajax),tooltip()就不会调用它们.我想到了以下解决方案:

$(document).ready(function() {
    $('body').on('ready', '[data-toggle="tooltip"]', function() {
        $(this).tooltip();
    });
});
Run Code Online (Sandbox Code Playgroud)

但这不起作用..

有任何想法吗..?

jquery events tooltip

2
推荐指数
1
解决办法
4158
查看次数

如何检查attr =是否存在至少一个li元素?

所以我想检查是否有任何li元素具有"data-foo"属性且其值为"bar".

这会有用吗?:

if ($('li[data-foo=bar]'))
{
//exists
}
else
{
//does not exist
}
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript jquery

0
推荐指数
1
解决办法
1706
查看次数

选择具有由data()设置的值的JQuery元素

可能重复:
jquery数据选择器

我有几个带有'connection_name'类的元素.这些元素中的每一个都使用data()JQuery函数绑定到它的唯一id.我正在尝试查询找到具有给定id的元素,但我似乎无法让它工作.

为了这个测试,我创建了一个只有1个元素的页面,并设置了元素的id.

我可以验证是否正在设置id,因为当我在控制台中查询元素时,它会显示返回的id:

$('.connection_name').data()
  Object
  id: "4fea76bd99ea080d19000002"
  __proto__: Object
Run Code Online (Sandbox Code Playgroud)

我已经在其他任务/帖子上看到元素应该由$('selector [data-attribute = value]')选择,但这似乎不起作用:

$('.connection_name[data-id="4fea76bd99ea080d19000002"]')
[]
Run Code Online (Sandbox Code Playgroud)

更糟糕的是,即使我尝试选择它没有任何价值(仅仅通过属性),我仍然没有返回任何东西:

$('.connection_name[data-id]')
[]
Run Code Online (Sandbox Code Playgroud)

我不确定问题是什么,或者如何去做.

javascript jquery

-1
推荐指数
1
解决办法
247
查看次数