Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQuery设置HTML属性_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用JQuery设置HTML属性

Javascript 使用JQuery设置HTML属性,javascript,jquery,html,Javascript,Jquery,Html,我使用JQuery、Modernizer和Angular的组合来实现通过ng repeat生成的表的自定义日期选择器解决方案。如果我将“datepicker”的Angular指令硬编码到HTML中,这个解决方案就会起作用 因此,例如,在我的表格中,使用ng repeat“revenue in runway.revenues”这样做: <td> <input type="date" class="form-control" ng-model="revenue.dat

我使用JQuery、Modernizer和Angular的组合来实现通过ng repeat生成的表的自定义日期选择器解决方案。如果我将“datepicker”的Angular指令硬编码到HTML中,这个解决方案就会起作用

因此,例如,在我的表格中,使用
ng repeat“revenue in runway.revenues”
这样做:

 <td> 
     <input type="date" class="form-control" ng-model="revenue.date" placeholder="YYYY-MM-DD" datepicker required/> 
 </td>
然而,当我登陆Firefox页面时,它似乎不起作用

此外,如果我尝试通过执行类似于
console.log($('input[type=“date”]”).prop(“class”)
的操作进行调试,则返回的值将是
未定义的
(应该是
表单控件

任何提示都将不胜感激

使用
.attr()
.setAttribute()
将属性设置为HTML

document.querySelector(“输入”).setAttribute(“日期选择器”,true);
console.log(document.querySelector(“输入”).outerHTML)

我从user@guest271314获得了一个想法,并对其进行了一点扩展,从而实现了这一点

我没有将属性添加到基于Modernizr的HTML中,而是将$scope变量设置为布尔值

  $(function() {
        var nativeDateInputIsSupported = Modernizr.inputtypes.date;
        if (!nativeDateInputIsSupported) {
            $scope.datePickerValue = "true"
        }
    });
在我的指令中,我添加了以下内容:

function link(scope, element, attrs, controller) {
        var requiredParam = attrs.datepicker === 'true'; //This was what was added
        if (requiredParam) { //Checking for boolean value
            element.datepicker({
                dateFormat: "yy-mm-dd",
                maxDate: '0'
            });
        }
    }

这意味着在我的HTML中,我在日期输入中添加了
datepicker=“{{datePickerValue}}”
,现在可以工作了!!感谢您的帮助,如果没有您的输入=),我就不会回到这个问题上来。

我不确定主要问题是什么,因为我在angular&Modernizer方面经验最少,但最后一个问题应该是:
console.log($('input[type=“date”]).attr(“class”)
console.log($('input[type=“date”]).prop(“className”))
使用
.attr()
将属性设置为HTML@TaufikNurRahmanda,我也试过了,但都不起作用(仍然返回未定义)。对于客座朋友来说,这是行不通的。我已经完成了.attr(“datepicker”),它什么也不做。另外,据其他一些堆栈溢出用户称,截至9月,JQuery似乎无法解决此问题。@AlexGelinas我怀疑问题是由于库之间的冲突(JQuery+angular+modernizr),是否存在任何控制台错误消息?如果没有,请尝试
console.log($('input[type=“date”]').length)
(它将获取DOM中存在的匹配元素数,如果超过1,
.attr()
.prop()
将不起作用),如果结果为1,则尝试
console.log($('input[type=“date”]).prop('outerHTML'))
(可能确实没有类属性)Hm,如果我尝试
console.log($('input[type=“date”]”).length)
,返回的结果是0。如果我将其包含在
$(文档)中,则会发生这种情况。就绪(…
)这似乎对我不起作用。请记住,此表上有7种不同的输入(我只是为了简洁起见才包括日期),因此我使用
'input[type=“date”]
。此外,它不应该是
datepicker=“true”
在HTML中,它应该是
datepicker
(就像在顶部的HTML示例中,或者如果要使用
required
作为输入)。这就是为什么我使用
prop('datepicker',true)
@AlexGelinas你能描述一下“似乎不起作用”吗?一个或多个
元素是否应出现相同的结果,其中使用了正确的选择器。为什么HTML中只有
datepicker
属性没有值才是预期结果?“似乎不起作用”如中所述,没有任何效果。
datepicker
属性是我在Angular中创建的一个指令,如初始问题=)中所述,我给出了一个示例,说明了如何处理HTML代码的顶部块。我想知道这是否可能与我所指的HTML部分在技术上不存在于DOM中这一事实有关。它是用来生成带有ng repeat的表的。但是如果我在
$(document).ready(…
之后尝试执行相同的操作,它仍然无效。“它应该是datepicker”,您在哪个浏览器中尝试设置
datepicker
属性而不设置值,HTML呈现
,而不是
function link(scope, element, attrs, controller) {
        var requiredParam = attrs.datepicker === 'true'; //This was what was added
        if (requiredParam) { //Checking for boolean value
            element.datepicker({
                dateFormat: "yy-mm-dd",
                maxDate: '0'
            });
        }
    }