0

I've found many similar questions but none quite did the trick for me. Here's my situation: I've got a span, the content of this span is a number dynamically inserted by Jquery. This same span has an attribute, I want the value of this attribute to be equal to the number.

I have tried to put the number in a variable and then add it trough .attr with Jquery but no luck there. Here's the code:

<script>

var value= $('#min').html();
$('#min').attr('data-category', value);

</script> 


<span class="filter" data-category="" id="min"></span>

Any pointers will be greatly appreciated! Thanks :)

4

3 回答 3

0

在渲染 HTML 标记之前渲染脚本。

您必须将 javascript 包裹在 jQuery $(document).ready() 周围以在 DOM 准备好后触发代码,或者在呈现 HTML 后将其放置。

<script>

$(document).ready(function() {
    var value= $('#min').html();
    $('#min').attr('data-category', value);
});

</script> 


<span class="filter" data-category="" id="min"></span>
于 2013-05-10T21:16:31.320 回答
0

工作示例

添加了 jquery watch 插件,以捕获内容更改,可能存在更好的解决方案,但是当您使用 jquery 动态更改内容时,此方法有效

不要忘记清除您的旧内容

$('#min').html('');

在插入新的之前

$('#min').html('new content');

确保watch()函数会触发

于 2013-05-10T23:55:21.663 回答
0

非常感谢您的帮助!我终于想通了。好的,这就是我解决它的方法。这可能比我原来的问题更具体,但也许它可以帮助其他人:

首先,我使用 Jquery UI 滑块的更改事件来检测滑块手柄上所做的任何更改:

$( "YOURSLIDER-DIV-SPAN-WHATEVER-ID-CLASS" ).slider({
change: function( event, ui ) {}
});

然后使用 value 方法,我将滑块句柄的值放入变量中。(因为我使用了一个范围滑块,所以我有两个,一个用于顶部手柄,一个用于底部)

var value = $( "YOURSLIDER-DIV-SPAN-WHATEVER-ID-CLASS" ).slider( "values", 0 );
var value = $( "YOURSLIDER-DIV-SPAN-WHATEVER-ID-CLASS" ).slider( "values", 1 );

然后我使用 .attr 将变量添加到底部和顶部滑块句柄:

$('#min').attr('data-category', bottom_value);
$('#max').attr('data-category', top_value);
于 2013-05-11T10:21:54.697 回答