如何在jQuery中定义条件属性选择器?

时间:2013-10-31 04:50:42

标签: javascript jquery jquery-selectors

我想将特定类的所有项目设置为特定值,但如果它具有特定的属性集,则必须匹配条件。

示例:

<div class="address"></div>
<div class="address" data-address-type="from"></div>
<div class="address" data-address-type="to"></div>

我想将所有地址设置为“123 Some Address Road”。但是,如果存在数据地址类型,则仅当数据地址类型为“to”时才会使用。

$('.address[data-address-type="to"]').text('123 Some Address Road');

以上内容不会改变未定义data-address-type的元素。

3 个答案:

答案 0 :(得分:6)

您需要在filter()元素中使用.address过滤元素,这些元素使用data-address-type:not([data-address-type])不具有data-address-type属性使用to

的值[data-address-type="to"]
$('.address').filter(':not([data-address-type]), [data-address-type="to"]').html('')

演示:Fiddle

答案 1 :(得分:3)

试试这个:

[data-address-type='to']表示attribute数据地址类型,value等于。

$(".address[data-address-type='to'],.address:not([data-address-type])").text("123 Some Address Road");

Fiddle here.

More information here.

答案 2 :(得分:0)

使用$(".address")Attribute Equals SelectorAttribute Not Equal Selector的组合。